はじめに
Laravel ではLaravel Breezeなどで簡単にログイン機能を導入することができますが、それら機能のデフォルト言語が英語のため、自分で日本語化をする必要が出てきます。
そんなとき簡単に日本語化できる方法があるので、今回はその方法を詳しく解説していきますので、最後まで読んで実装していってくださいね!
前提条件
今回Laravelを日本語化するにあたってLaravel Breezeがインストール済みの方を対象としています。
Laravel Breezeをインストールしていない方は下記から簡単に導入してください。
Laravelの日本語化について
LaravelはLaravel Breezeなどを日本語化するために下記2つの方法を提供しています。
1つ目の方法は、lang
ディレクトリ内にja.json
などのJSON形式のファイルを作成して、そのJSONファイル内に翻訳内容を記述していく方法です。
2つ目の方法は、lang
ディレクトリ内に各種言語ファイルを設置する方法です。
例えば、日本語化をしたい場合はlang
ディレクトリ内にja
ディレクトリを作成して、その中にmessage.php
などの翻訳用PHPファイルを用意するやり方です。
どちらか一方の方法のみを採用することや、どちらとも採用することもできるので好きな感じで実装するのがいいですね!
それでは2つの方法について順番に説明していきますが、まずはどちらにも共通設定などから行っていきましょう。
Laravelの設定ファイル変更
まずはLaravelのデフォルト設定を変えるためにconfig/app.php
の下記の通り変更してください。
// 'UTC'から'Asia/Tokyo'に変更
'timezone' => 'Asia/Tokyo',
// 'en'から'ja'に変更
'locale' => 'ja',
// 'en_US'から'ja_JP'に変更
'faker_locale' => 'ja_JP',
ついでに日本時間に対応させるためにタイムゾーンも変更しておきました。
ちなみに、'fallback_locale' => 'en',
の部分はそのままでOKです。
この設定は、もしもlocale
で指定した言語の設定が無かった場合に設定する言語のことですので、en
のままでOKです!
langディレクトリの作成
Laravelはデフォルトでlang
ディレクトリを用意していないので、まずはどちらの方法を採用する場合でも下記のコマンドを実行してlang
ディレクトリを作成してください。
# Laravel sailで環境構築をしている人向けコマンド
$ ./vendor/bin/sail php artisan lang:publish
# Laravel sail以外で環境構築をしている人向けコマンド
$ php artisan lang:publish
コマンドの実行に成功するとlang
ディレクトリとlang
ディレクトリ内にen
ディレクトリが作成されており、その中にauth.php
とpagination.php
、passwords.php
、validation.php
の4つのファイルが作成されます。
これで日本語化する準備は完璧です。
ja.jsonの作成
まずは1つ目の方法であるja.json
内に日本語の設定を記述する方法から解説していきます。
さっそくlang
ディレクトリ内にja.json
ファイルを作成してください。
コマンドで作成する場合はプロジェクトフォルダ下で下記のコマンドを実行してください。
$ touch lang/ja.json
JSONファイルの作成が完了したら、lang/ja.json
を下記の通り編集してみましょう!
{
"Email": "メールアドレス",
"Password": "パスワード",
"Remember me": "ログイン情報を保存する",
"Forgot your password?": "パスワードを忘れた方はこちら",
"Log in": "ログイン"
}
これでlocalhost/loginにアクセスすると、下記画像のように日本語化されていることが確認できます。
これだけで日本語化できちゃうの?って感じですよね。
ちなみに、ja.json
で"Email": "メールアドレス"
や"Forgot your password?": "パスワードを忘れた方はこちら"
と記述して、なぜ日本語化できたのかというと、ログイン画面のBladeファイルはresources/views/auth/login.blade.php
であり、その中で"__('Email')"
や{{ __('Forgot your password?') }}
と記述されているので、それらの英文に合った翻訳をja.json
に記述することで元ファイルを変更することなく日本語化することができます。
ただし、このように1ファイルずつ確かめていくのはとても困難なので、2つ目の方法がとても役に立ちます。
各種言語ファイルを設置する
次は各種言語ファイルを設置して翻訳する方法を解説していきます。
下記GitHubで日本語の翻訳ファイルを公開していただいているので、ありがたくこちらを使用させていただきます!
使用する際はぜひスターも押しておきましょう!
使い方はGitHubのREADME.mdにも書いてありますが、下記の手順で導入することが可能です。
# Laravel sailで環境構築をしている人向けコマンド
$ ./vendor/bin/sail composer require askdkc/breezejp --dev
$ ./vendor/bin/sail php artisan breezejp
# Laravel sail以外で環境構築をしている人向けコマンド
$ composer require askdkc/breezejp --dev
$ php artisan breezejp
2つ目のコマンドを実行すると、下記のようにGitHubのリポジトリにスターをするか聞かれるので、スターを送る場合は「yes」を入力し、送らない場合は「no」を入力してキーボードの「Enter」を押してください。
Laravel Breeze用に日本語翻訳ファイルを準備します
config/app.phpのlocaleをjaにします
GitHubリポジトリにスターの御協力をお願いします🙏 (yes/no) [yes]:
> yes
下記のメッセージが出力されれば日本語化は完了です。
日本語ファイルのインストールが完了しました!
動作確認
それでは、実際に日本語化されているかの動作確認をしていきましょう。
lang
ディレクトリ内に新たにja
ディレクトリが作成されており、その中にauth.php
とpagination.php
、passwords.php
、validation.php
の4つのファイルが作成されているはずです。
さらにlang
ディレクトリ内ja.json
も作成されており、中身が記述されています。
これらが確認できたら、ログイン画面や新規登録画面などにアクセスして日本語化がされているかを確認しましょう!
めちゃいい感じに日本語化されていますね!
もし翻訳内容をカスタマイズしたい場合はauth.php
とpagination.php
、passwords.php
、validation.php
、ja.json
の該当する箇所をカスタマイズすればOKです!
例えば、ja.json
の"Name": "名前"
を"Name": "お名前"
とするだけで、登録画面の「名前」が「お名前」に変換されます。
もしcomposer require askdkc/breezejp –devでエラーが起こった場合
もしcomposer require askdkc/breezejp --dev
のコマンドでエラーが起こった際には手動で導入することも可能です。
lang
ディレクトリ内にja
ディレクトリを作成して、その中にauth.php
とpagination.php
、passwords.php
、validation.php
の4つのファイルを作成してください。
そして、それらのファイルの中身を下記からコピーして、各ファイルに貼り付けてください。
また、lang
ディレクトリ内にja.json
ファイルを作成し、下記から内容をコピーしてja.json
ファイルにペーストしてください。
もちろん先ほど説明した設定ファイルであるconfig/app.php
の変更はしておいてくださいね!
最後に
Laravelは数ステップでログイン機能を実装できて、数ステップで日本語化までできるなんてとても便利ですよね!
ぜひLaravelを使い倒しちゃってくださいね!
無料プログラミング学習コミュニティー
なお、ファドが所属しているDiscordの無料プログラミングコミュニティー「TOMONI CODE」では、プログラミングを学習している方から、現役エンジニア、フリーランスエンジニアの方がワイワイ交流しています。
未経験の方の転職支援やフリーランスになりたい方への案件紹介支援などもしておりますので、ぜひ参加してみてください!
コメント