💻

【Laravel】php artisan lang:publishサンプル

に公開

標準のバリデーションメッセージを日本語に変えたり、カスタマイズしたい際に使用します。

このコマンドを使用すると、
vendor/laravel/framework/src/Illuminate/Translation/lang
に存在する標準の言語ファイルが、lang/ 以下にコピーされます。

以下に、コマンドの実行までと、
日本語設定へ変更する手順を示します。

プロジェクト配下へ移動

cd プロジェクトディレクトリパス

コマンド実行

php artisan lang:publish

上記を実行し、

   INFO  Language files published successfully.

と出ると、コピーが成功しています。
実際に、

ls

とすると、langが表示され、

ls lang

とすると、
標準言語の英語が入っている、enディレクトリが存在するかと思います。

日本語翻訳を入れる

composer require laravel-lang/lang --dev

上記コマンドを実行し、日本語翻訳をいれます。
入ったかどうかは、

php artisan list

上記を実行し、

lang:add

上記がでればOKです。

日本語ロケール追加

php artisan lang:add ja

上記を実行して、日本語ロケールを追加します。
実行すると、

   INFO  Collecting translations...

  LaravelLang\Lang\Plugin ............................................................................................. 17.84ms DONE

   INFO  Storing changes...

  ja.json .............................................................................................................. 1.51ms DONE
  ja/auth.php .......................................................................................................... 7.18ms DONE
  ja/pagination.php .................................................................................................... 1.35ms DONE
  ja/passwords.php ..................................................................................................... 1.51ms DONE
  ja/validation.php .................................................................................................... 3.30ms DONE

上記が表示され、jaディレクトリとja.jsonが追加されたことが分かります。
実際に、

ls lang

を実行すると、jaディレクトリとja.jsonが追加されていることが分かります。

app.phpもしくは.envを日本語へ変更

app.phpに、

app.php
    'locale' => env('APP_LOCALE', 'en'),

    'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'),

    'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'),

このような設定値があります。
そのため、.envファイルを編集する場合は、

.env
- APP_LOCALE=en
- APP_FALLBACK_LOCALE=en
- APP_FAKER_LOCALE=en_US
+ APP_LOCALE=ja
+ APP_FALLBACK_LOCALE=ja
+ APP_FAKER_LOCALE=ja_JP

上記のように修正。
app.phpを編集する場合は、

app.php
-    'locale' => env('APP_LOCALE', 'en'),
+    'locale' => 'ja',

-    'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'),
+    'fallback_locale' => 'ja',

-    'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'),
+    'faker_locale' => 'ja_JP',

上記のように修正します。

これで、lang/ja以下のファイルに定義されたメッセージが使用されるようになります。

日本語設定への変更確認

Laravel Breezeで設定した認証画面で、確認します。
https://zenn.dev/tkmttkm/articles/11008ac5185724

app.phpもしくは.envを日本語へ変更する前は、
日本語設定前

上記のようにデフォルトの英語になっています。
対応後は、
日本語設定後

上記のように日本語に変わっています。

Discussion