Laravel.38 多言語対応(準備)
↓でログイン画面などのテキストを日本語化するにあたり、
気になっていた点があった。
テキストが「Login」のリンクボタンを表現するのに、
<x-button class="ml-3">
{{ __('Log in') }}
</x-button>
となっている。
__('Log in') というのは何なのか?
今回の修正でリテラルに修正してしまったので気になってた。
__(アンダーバー2つ)はヘルパ関数の一つで、Laravelが用意した関数。
ヘルパ関数は自作も可能だとか。
__() は、翻訳してくれる関数?
__
ヘルパ関数を使い、言語ファイルから翻訳文字列を取得できます。
翻訳文字列が存在しない場合、文字列をそのまま返す。
翻訳文字列はどこに定義するんでしょ?
■ロケール設定
言語設定を確認
config\app.php
'locale' => 'en',
普通に英語になってたので、まずはここを
'locale' => 'jp',
に修正。
■言語ファイル作成
翻訳用文字列を定義する。
lang\ja.json
{
"Log in": "ログイン",
"Email": "メールアドレス",
"Password": "パスワード",
"Remember me": "パスワードを記憶",
"Forgot your password?": "パスワードを忘れた場合",
"Password": "パスワード"
}
blade.php側では、
{{ __('Log in') }}
などとすると、
リテラルと同じように表示されることが確認できた。
次回、英語と日本語を切替できたらいいかな。
続く