Laravelではバリデーションチェックでエラーになった時に英語でエラーメッセージが表示されます。
海外向けサイトであればいいかもしれませんが、日本のサイトであれば、ちょっとわかりにくいですよね。
そこで、今回はこのメッセージを日本語表記にする方法について解説します。
エラーメッセージの日本語化手順
エラーメッセージを日本語化する手順は次の通りです。
- localeをjaに変更
- lang/jaに日本語用のvalidation.phpを作成
- validation.phpを作成の内容を変更
それぞれ順に解説していきます。
1. localeをjaに変更
「config/app.php」の言語設定を次のように変更します。
// 'locale' => 'en',
'locale' => 'ja',
2. lang/jaに日本語用のvalidation.phpを作成
「resources/lang」の中に日本語を意味する「ja」のフォルダを作成し、そのjaフォルダ内にvalidation.phpを作成します。
validation.phpは「en」フォルダ内にあるので、それをコピペすると中身を変更するだけなので楽です。
3. validation.phpを作成の内容を変更
enフォルダからjaフォルダへコピペしたvalidation.phpを開くと、次のように色々書かれていると思います。
これは左側が「バリデーションのルール」で右側が「エラー時のメッセージ」を表します。
なので、この右側のメッセージを表示したい文言に変更していけばOKです。
メッセージ サンプル
'required' => ':attributeは必須です。',
'email' => ':attributeはEmailの形式ではありません。',
しかし、これではまだ不十分です。
上記のように書いた場合、必須項目エラーになると、次のように表示されます。
「titleは必須です。」となっていますね。
このtitleはname属性の値がそのまま使われていることになるので、完全に日本語化できていません。
そこで、次にここの設定を変更していきます。
validation.php内に、次のような項目があるはずなので、この「attributes」の中に定義を追加すればOKです。
メッセージ サンプル
'attributes' => [
'title'=>'タイトル',
'email'=>'メールアドレス',
],
こうすることで、「title」は「タイトル」に、「email」は「メールアドレス」に置き換えられます。
実際に画面で見てみると、下の写真のように「title」が「タイトル」に置き換わっています。
これでバリデーションエラーメッセージの日本語化は完了です。
おすすめのLaravelの書籍
(2024/11/21 11:12:15時点 Amazon調べ-詳細)