Laravel10とLaravel11を日本語化する4つのステップを紹介します。
注意点として、Laravel9までと異なり、Laravel10以降はLangディレクトリがデフォルトで存在しません。自分で作成する必要があります。
便利なライブラリ
なお、設定や翻訳をご自身で行うのは面倒だという方は、下記ライブラリがおすすめです。
インストールすると、設定から翻訳まで行ってくれます。
Laravel10・Laravel11 日本語化のための4ステップ
まずはデフォルトの設定から変更していきましょう。
①デフォルトの設定を変更する
Laravel10とLaravel11で設定箇所が若干異なります。
Laravel11の場合
.envファイルの中に、言語設定が入っています。
【.env】
1 2 3 |
APP_LOCALE=en APP_FALLBACK_LOCALE=en APP_FAKER_LOCALE=en_US |
ここを次のようにしておきます。
1 2 3 |
APP_LOCALE=ja APP_FALLBACK_LOCALE=ja APP_FAKER_LOCALE=ja_JP |
Laravel10の場合
app/config のapp.phpファイルを開き、86行目あたりのlocale を en から ja に変えておきます。
ちなみに、‘fallback_locale’は、設定したlocaleが使えなかった場合に使用する言語をいれます。こちらは、デフォルトの英語のままで良いでしょう。
さらにその下の ‘faker_locake’は、テスト用のフェイク(ダミー)データを作る時の言語を指定します。ここは ‘ja_JP’としておくと、日本語のダミーデータが作れます。
「渡辺学」みたいな、実在しそうな名前のテストデータを作れて楽しいですよ。詳しくは下記記事をどうぞ。
② langディレクトリ(フォルダ)を作る
なお残念ながら、言語の設定を変えただけでは、日本語にはなりません。Laravelはデフォルトでは英語用のメッセージしかないので、日本語訳を追加してあげる必要があります。
日本語訳の置き場所は、プロジェクト直下のlangの中となります。Laravel9では、langディレクトリはデフォルトで存在しましたが、Laravel10以降は自分で作成する必要があります。
下記コマンドを実行します。
1 |
php artisan lang:publish |
③ ja.jsonファイルを作る
次に、langの中にja.jsonファイルを作ります。ここに基本部分の日本語を入れていきます。
入れ方は、下記のとおりです。
④ jaディレクトリを作る
コマンド実行後、プロジェクトにはlangディレクトリができます。この中には、enディレクトリが入っています。enの中には、4つのファイルが入っています。
それぞれ、下記の時に使用するメッセージが入っています。
auth.php | 認証用 |
---|---|
pagination.php | ページネーション用 |
passwords.php | パスワード用 |
valication.php | バリデーション用 |
このenをコピーして、jaディレクトリを作りましょう。各ファイルの中に日本語訳を入れていけば、認証・ペジネーション・パスワード・バリデーションに関連するメッセージが日本語になります。
翻訳はなかなか手間がかかります。最初にご紹介したライブラリをインストールすると、翻訳の手間がなくなりラクですよ。
Laravel公式マニュアル
Laravelの公式マニュアルでも、下記ページに日本語化のためのコマンドが紹介されています。
ja.jsonファイルについての翻訳はないのですが、バリデーション等、4つのファイルの翻訳が入手できます。
ただマニュアルどおりコマンドを実行すると、resourcesの中にlangフォルダが出来てしまいます。Laravel8まではresourcesの中にlangが出きたためです。場所は、手動で変更してください。
langディレクトリの変遷の歴史が感じ取れますね。
翻訳されていない場所を個別に翻訳する
これでエラーメッセージは日本語になりましたが、自分で追加したフィールド名は英語のまま残っていたりします。
この部分を日本語にするには、lang/ja/validation.phpファイルを編集する必要があります。
まずは、日本語化したい箇所をチェックしておきましょう。たとえば、上記のフォームの「件名」は、次のコードで書かれています。
1 |
<input type="text" name="title" class="form-control" id="title" > |
name属性の【title】部分がエラーメッセージに使われています。
次に、lang/ja/validation.phpを開き、’attributes’ に翻訳を追加していきます。
たとえば、titleを「件名」、bodyを「本文」としたい場合は、下記のようにします。
1 2 3 4 |
'attributes' => [ 'title'=>'件名', 'body'=>'本文', ], |
これで、新たに追加した部分も日本語化できます。
おまけ:日本語を入れる時の注意点
なおjsonファイルは、最後の閉じカッコの前に不要なカンマがあったりするとエラーになるので、気を付けてくださいね(経験談)。
さいごに
Laravel10とLaravel11の日本語化についてご紹介しました。
Laravelを基礎から学びたい方向けに、学習サイト運営しています。Laravelの基本の使い方を学びつつ、フォーラムサイトを作っていける実践的な内容です。
【学習サイトで作成する画面例】
基礎編部分は、無料です。
詳細は、こちらのご案内ページご覧ください。