💻
【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で設定した認証画面で、確認します。
上記のようにデフォルトの英語になっています。
対応後は、

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

Discussion