L

Laravelのバリデーションエラーメッセージを日本語化する方法

#Laravel #バリデーション #多言語化
広告枠(記事上)— 本番では AdSense 広告が表示されます

Laravel のバリデーションは強力ですが、初期状態ではエラーメッセージが英語で表示されます。この記事では、メッセージを日本語化する手順を解説します。

1. 言語設定を日本語にする

config/app.phplocaleja に変更します。

'locale' => 'ja',

2. 日本語の言語ファイルを用意する

lang/ja/validation.php を作成し、各ルールの日本語メッセージを定義します。公式が配布している日本語翻訳ファイルを利用するのが手早い方法です。

return [
    'required' => ':attribute は必ず入力してください。',
    'email'    => ':attribute には有効なメールアドレスを入力してください。',
    'min'      => [
        'string' => ':attribute は :min 文字以上で入力してください。',
    ],
    // ...
];

:attribute:min は、Laravel が自動で実際の値に置き換えてくれるプレースホルダです。

3. 属性名(フィールド名)も日本語にする

このままだと「email は必ず入力してください。」のように、フィールド名が英語のままです。validation.phpattributes で属性名を翻訳します。

return [
    // ... 各ルールのメッセージ ...

    'attributes' => [
        'email'    => 'メールアドレス',
        'password' => 'パスワード',
        'name'     => '名前',
    ],
];

これで「メールアドレス は必ず入力してください。」と表示されるようになります。

まとめ

  • config/app.phplocaleja にする。
  • lang/ja/validation.php でルールごとのメッセージを翻訳する。
  • attributes でフィールド名も翻訳すると、自然な日本語メッセージになる。
広告枠(記事下)— 本番では AdSense 広告が表示されます