【Laravel 11】バリデーションメッセージを日本語化する

Laravel

Laravelはデフォルトでエラーを出力してくれますが、エラーメッセージは英語です。このメッセージを日本語化する方法をサクッと書いていきます。

言語設定を変更する

.envファイル開き、APP_LOCALEを検索します。

デフォルトではAPP_LOCALE=enなのでこれをen→jaに変更します。

APP_LOCALE=ja

言語ファイルを作成する

言語ディレクトリを作成する

デフォルトで言語ディレクトリ(lang/)がない場合、まず以下を実行します。

sail artisan lang:publish

これでlangディレクトリが作成され、さらにその中にenディレクトリが作成されます。

これは英語版のファイルなので、日本語版のディレクトリも作成します。

enディレクトリを複製しjaディレクトリを作成する

enディレクトリをそのまま複製し、enディレクトリと同じ階層にjaディレクトリを設置します。

日本語にしたい箇所を自力で入力する

validation.phpをすべて削除し、日本語のエラーメッセージを記述していきます。

(例)

<?php
return [
  'invalid_selection' => '選択した:attributeは無効です。',
  'max_limit' => [
    'numeric' => ':attributeは:max以下にしてください。',
    'string' => ':attributeは:max文字以下で入力してください。',
  ],
  'min_limit' => [
    'numeric' => ':attributeは:min以上である必要があります。',
    'string' => ':attributeは:min文字以上で入力してください。',
  ],
  'not_numeric' => ':attributeは数値である必要があります。',
  'field_required' => ':attributeを入力してください。',
  'already_taken' => ':attributeは既に使用されています。',

  'labels' => [
    'product_category' => 'カテゴリー',
    'product_title' => 'タイトル名',
    'product_price' => '金額',
  ],
];

確認

最後に確認をして終了。