初心者の備忘録。
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' => 'こんにちは'
];
こちらも「こんにちは」と表記される。