LoginSignup
9
10

More than 1 year has passed since last update.

Laravel 9 の日本語化

Posted at

初心者の備忘録。
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というファイルを作成し、以下のようにする。

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.jsonresources/lang/ja/****.phpの違い:
bladeファイル内で{{__('hello')}}と書かれている場合、日本語だとresources/lang/ja.jsonを参照し、

resources/lang/ja.json
{
    "hello" : "こんにちは"
}

で、「こんにちは」と表示される。
一方、bladeファイル内で{{__('messages.hello')}}と書かれている場合、日本語だとresources/lang/ja内のmessages.phpファイルを参照し、helloというキーを参照し、

resources/lang/ja/messages.php
<?php

return [
'hello' => 'こんにちは'
];

こちらも「こんにちは」と表記される。

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10