【Laravel】authを日本語する方法!プロジェクト内のメッセージもカスタマイズ

この記事からわかること
- Laravelを日本語化する手順
- authの表示やメッセージをカスタマイズする方法
- locale(ロケール)とは?
\ アプリをリリースしました /
今回はLaravel内の言語設定を日本語に変更する方法とログイン機能を簡単に実装できるauthを使った際の翻訳方法をまとめていきます。
Laravel内の言語設定を日本語にする
Laravelはプロジェクトを作成時の言語設定がデフォルトでは「en」(英語圏)になっています。世界で使われているフレームワークなので当然ですね!
言語設定が〜と言いましたが正しくは「locale(ロケール)」が「en」になっています。localeとは「場所」を指す英単語でプログラミングでは言語設定や日付設定、通貨設定などを含めた地域や国を指定する意味合いを持っている単語です。
Laravel内でlocaleを設定しているのは「プロジェクト」>「config」>「app.php」です。この中にPHPでお馴染みのtimezone
と今回の目的であるlocale
を設定しているコードが記述されています。日本用にカスタマイズするにはそれぞれを以下のように変更します。
timezone
はデフォルト値のUTC(Universal Time Coordinated:協定世界時間)」のままだと日本と9時間ほど誤差があるので注意してください。
Authのメッセージを日本語する
続いてはLaravelに会員登録機能を簡単に組み込むとのできるAuth(オース)を導入している場合の日本語化設定について見ていきます。
日本語に変更する方法はLaravelの公式サイトにも載っています。
おすすめ記事:公式ドキュメント
まずはLaravelプロジェクト内に日本語対応用のファイル群を公式サイトからインストールします。
コマンドライン(ターミナル)を開きカレントディレクトリをプロジェクトに移動させます。
次に公式サイトに記述されている以下のコードでインストーラをコピー
続いてはインストーラを実行
完了したら不要なので削除しておきます。
これでLaravelプロジェクト内の「resources」>「lang」内に「ja」フォルダが作成されます。
「ja」フォルダの中には「auth.php」「passwords.php」「pagination.php」「validation.php」の4つのファイルが入っています。この4つのファイルの中にはauthを扱う際に表示される日本語バージョンのメッセージが記述されています。ここの値を変更することでメッセージが呼び出される時の文言をカスタマイズすることができます。
resources >lang > ja > auth.php
Authのloginやregisterの変更方法
Authの項目名(loginやregisterなど)を日本語に変更するには直接日本語に書き換えても良いですがもう少し保守性の高い方法があります。その前にまずはauthのbladeファイルを見てみます。
resource > views > auth > login.php(一部抜粋)
__( )
のような表記の部分があると思います。これはLaravelのヘルパ関数の1つで、__メソッドというものです。__メソッドは第一引数にファイル名とキー値を「.(ドット)」で繋いだ文字列を受け取りそのファイルとキー値にマッチしたものを返します。
デフォルト(__('Login')
)ではファイル指定はなく、キー値(loginやregisterなど)のみの表示なので参照する物がなくそのままキー値が出力されています。このキー値部分を直接書き換えても希望のものに変わりますが保守性を高めるために別ファイルを用意し、変換する方法を解説します。
翻訳用のファイルを作成する
日本語変換する流れ
- 翻訳用ファイルを作成
- 変換したいキー値と文字列を紐付け
- __メソッド内を修正
まずは「lang」>「ja」内に翻訳用のファイルを作成します。今回は翻訳という意味の「translation.php」(名前は何でもOK)を作成します。
作成したら中に以下のように変換させたいキー値と変換後(翻訳後)の文字列を連想配列形式で記述していきます。今回は「login」→「ログイン」「Register」→「登録」に変更してみます。
resources > lang > ja > translation.php
続いてbladeテンプレート内の__(login)
を__(translation.login)
に変更します。
resource > views > auth > login.php(一部抜粋)
これで表示が変更されたはずです。この要領でその他の項目名やメッセージ名も変更することが可能です。よく使いがちなものをまとめておきました。
これでLaravelの日本語化とAuthのメッセージや項目の翻訳は完了です。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。