Yii2のデフォルトメッセージを変更する

Yii2でアプリケーションを作成した時、例えばフォームのvalidationによってエラーメッセージが「〜〜〜〜は空白ではいけません」などと表示されます。

 

このメッセージはさすがにいかがなものかと思うので、簡単に変更する手順をメモしておきます。

 

 

まず、このメッセージ自体は

/vendor/yiisoft/yii2/messages/ja/yii.php

にあります。

 

これを、例えばfrontendのアプリケーションで置き換えるならば、

/frontend/messages/ja/yii.php

にコピーしてやります。

 

その後、

/frontend/config/main.php

の以下の箇所を変更します。

 

'i18n' => [
  'translations' => [
    'yii' => [
       'basePath' => '@app/messages',
       'sourceLanguage' => 'ja',

         'fileMap' => [
         'yii' => 'yii.php',
         'yii/error' => 'error.php',
       ],
     ], 

  ], 

], 

 

これで、新しいメッセージが表示されるはずです。

 

簡単に説明しておくと、3行目の'yii'は、メッセージのカテゴリです。フォームのエラーメッセージは

Yii::t('yii', 'XXXXXX')

 で表示されているので、そのカテゴリに関して使用するメッセージファイルを指定しています。

 

Yii2のコアに手を入れているわけではないので、Yii2のバージョンアップの際にも問題ないと思います(新しいYiiのメッセージが追加された場合は別ですが)。