【Laravelの使い方】バリデーションエラーメッセージの日本語化

Laravelではバリデーションチェックでエラーになった時に英語でエラーメッセージが表示されます

海外向けサイトであればいいかもしれませんが、日本のサイトであれば、ちょっとわかりにくいですよね。

そこで、今回はこのメッセージを日本語表記にする方法について解説します。

エラーメッセージの日本語化手順

エラーメッセージを日本語化する手順は次の通りです。

  1. localeをjaに変更
  2. lang/jaに日本語用のvalidation.phpを作成
  3. 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の書籍

created by Rinker
秀和システム
¥3,300 (2022/12/05 19:44:20時点 Amazon調べ-詳細)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA