初心者の備忘録。
Laravel9を昨日から始めたので、備忘録がてら記録しておく。
Laravel、認証周りのBreezeの初期画面までは立ち上げられた。
その後の日本語化で地味につまづいた。
最終的にはこれらの記事を読んで、解決した。
https://qiita.com/nekyo/items/eba7f145a71a5d04b57d
https://qiita.com/rikua0023/items/6384075345b1d14dc9e3
https://qiita.com/yoshidashuntarou/items/160f1e49409223c7da63
手順
1.config/app.phpを以下のように日本の設定に変更する。
'timezone' => 'Asia/Tokyo'
'locale' => 'ja'
'faker_locale' => 'ja_JP'
2.下記のコマンドを打つ。
php -r "copy('https://readouble.com/laravel/8.x/ja/install-ja-lang-files.php', 'install-ja-lang.php');"
php -f install-ja-lang.php
php -r "unlink('install-ja-lang.php');"
すると、resources/lang/jaというディレクトリの中に、auth.php, pagination.php, passwords.php, validation.phpというファイルができる。
3.resources/lang/下にja.jsonというファイルを作成し、以下のようにする。
{
    "Login":"ログイン",
    "E-Mail Address":"メールアドレス",
    "Password":"パスワード",
    "Remember Me":"ログイン状態を保存する",
    "Forgot Your Password?":"パスワードをお忘れですか ?",
    "Register":"登録",
    "Name":"お名前",
    "Confirm Password":"パスワード(確認用)",
    "Reset Password":"パスワードリセット",
    "Send Password Reset Link":"パスワードリセットリンク送信",
    "Logout":"ログアウト",
    "Verify Your Email Address":"ユーザ登録を完了してください",
    "A fresh verification link has been sent to your email address.":"新しいリンクをあなたのメールアドレスに送信しました。",
    "Before proceeding, please check your email for a verification link.":"メールに記載されているリンクをクリックして、登録手続きを完了してください。",
    "If you did not receive the email":"メールが届いていなければ、",
    "click here to request another":"こちらをクリックして再送信してください。",
    "Please click the link below to verify your email address.":"メールアドレスを確認するために下のリンクをクリックしてください。",
    "Verify Email Address":"メールアドレス確認",
    "If you did not create an account, no further action is required.":"心当たりがない場合は、本メッセージは破棄してください。",
    "Click button below and reset password.":"下のボタンをクリックしてパスワードを再設定してください。",
    "Reset password":"パスワードリセット",
    "If you did not request a password reset, no further action is required.":"心当たりがない場合は、本メッセージは破棄してください。"
} 
4.日本語化ができていない部分を確認し、上記のja.jsonに追加する。
以上。
解説
・fallback_localeはそのままのenのほうがいいみたい。日本語ファイルがなかったときに、enファイルにいかせるようにする。
・faker_localeはテストデータをFakerするときに日本語化してくれるようだ。
・resources/lang/ja/内のファイルはバリデーションの日本語化を担当。
・ja.jsonとresources/lang/ja/****.phpの違い:
bladeファイル内で{{__('hello')}}と書かれている場合、日本語だとresources/lang/ja.jsonを参照し、
{
    "hello" : "こんにちは"
}
で、「こんにちは」と表示される。
一方、bladeファイル内で{{__('messages.hello')}}と書かれている場合、日本語だとresources/lang/ja内のmessages.phpファイルを参照し、helloというキーを参照し、
<?php
return [
'hello' => 'こんにちは'
];
こちらも「こんにちは」と表記される。