【Laravel6】Auth機能の文言やバリデーションメッセージの日本語化
Laravelのauth認証機能を導入してログイン画面を開くと、以下のように表示されてる文字からエラーメッセージまで全部英語ですよね。
これを日本語にしたい場合のやり方を説明します。
まずはapp.phpの’locale’を’ja’にします。
[config/app.php]
'locale' => 'ja',
そして、各文言やメッセージの日本語バージョンを作成します。
バリデーションメッセージの日本語化
「resources/lang/」にはもともとenというフォルダがあります。これを丸ごとコピーしてjaというフォルダ名にします。
[resources/lang/]
/resources
/lang
/en
auth.php
pagination.php
passwords.php
validation.php
/ja
auth.php
pagination.php
passwords.php
validation.php
例えば、en/auth.phpを見ると以下のようなコードがあります。
[resources/lang/en/auth.php]
これをja/auth.phpの方では日本語にします。
[resources/lang/ja/auth.php]
'failed' => 'ログインできません。入力した情報に誤りがないかご確認ください。',
'throttle' => 'ロックされました。:seconds秒後に再度お試しください。',
これでエラーメッセージが日本語になりました。
文言の日本語化
次に、画面右上の「Login」などを日本語にします。
resources/lang/直下にja.jsonファイルを作成します。
/resources
/lang
ja.json
そして、ja.jsonに以下の内容を記載します。
[resources/lang/ja.json]
{
"Login": "ログイン",
"Register": "新規登録",
"Forgot Your Password?": "パスワードを忘れた場合",
"Reset Password": "パスワード再設定",
"Send Password Reset Link": "パスワード再設定URLを送信",
"Name": "ユーザー名",
"E-Mail Address": "メールアドレス",
"Password": "パスワード",
"Confirm Password": "パスワード(確認用)",
"Remember Me": "ログイン状態を保存"
}
すると以下のように画面の文言が日本語になります。
これはどういうことかというと、
ログイン画面のテンプレートを見ると、
[resources/views/auth/login.blade.php]※一部抜粋
<div class="card-header">{{ __('Login') }}</div>
{{ __('Login’) }}というように"__
関数"というものが使われています。
これは、言語ファイル(ここではresources/lang/ja.json)から引数に応じた行を取得します。
この例で言うと、ja.jsonの「"Login": “ログイン"」を取得して、画面にログインを表示します。
もし、ja.jsonに"Login"のキーがなければ、そのまま引数の’Login’が画面に表示されるというわけです。
この"__
関数"を使えば、いい感じに多言語対応ができそうですね。
ディスカッション
コメント一覧
まだ、コメントがありません