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

これまであまりlang周りを変更する事がなかったのですが、今回、laravel8での日本語の要件が出てきたので残しておきます。

app.php

//'timezone' => 'UTC',
'timezone' => 'Asia/Tokyo',
//'locale' => 'en',
'locale' => 'ja',

この2箇所の変更はなんとなくいつも行っているのですが、言語ファイルをもってくるのが面倒くさく(笑)そのまま英語のエラーメッセージを利用していました^^

言語ファイルの設定

Larevelプロジェクトのホームフォルダに移動します。

php -r "copy('https://readouble.com/laravel/8.x/ja/install-ja-lang-files.php', 'install-ja-lang.php');"

sailのphpしかない場合は

sail php -r "copy('https://readouble.com/laravel/8.x/ja/install-ja-lang-files.php', 'install-ja-lang.php');"

こんな感じでsailに渡してあげればOKです。

8.x の部分を任意のバージョンに変えると、他のバージョンの言語ファイルも持ってこれます。

php -f install-ja-lang.php

これでインストール。

php -r "unlink('install-ja-lang.php');"

最後に削除です。rmコマンドでも問題無し。

sailユーザーの方はsail経由でいずれもphpを呼び出してください。

次の用に、jaフォルダに日本語ファイルがインストールされました。

日本語メッセージが足りない

Laravelのバージョンによってまちまちみたいですが、ざっとみたところ、今回のlaravel8の場合、次に日本語の不足違いがありました。

lang/en/auth.php

    'failed' => 'These credentials do not match our records.',
    'password' => 'The provided password is incorrect.',
    'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',

lang/ja/auth.php

    'failed' => 'ログイン情報が登録されていません。',
    'throttle' => 'ログインに続けて失敗しています。:seconds秒後に再度お試しください。',

passwordエラー時のメッセージが無いっぽいですね。

    'failed' => 'ログイン情報が登録されていません。',
    'password' => 'ログイン情報が間違っています。',
    'throttle' => 'ログインに続けて失敗しています。:seconds秒後に再度お試しください。',

力技の日本語翻訳でメッセージを追加しました(笑)