見出し画像

Laravel 学習記録 #019 多言語化を学ぶ

Laravelの多言語化について学習したものをまとめてます。

多言語化について

  • resources/langディレクトリ配下に言語のディレクトリ、ファイルが必要

  • config/app.php ファイルのlocal キーの言語で指定のディレクトリが使われる

  • __()を使うことで言語ファイルが読み込まれる


やってみる

Laravel初期では言語ファイルはenのみなので、jaを作成します。
resources/lang/ja配下にlang.phpを作成

<?php
return [
    'message' => '日本語メッセージ',
];

連想配列でメッセージを用意します。
キーを指定することで、メッセージが表示されます。

続いて、config/app.phpを編集します。

'locale' => 'ja',

これで作成したresources/lang/ja配下を読み込む準備ができました。

それでは確認してみます。
__('ファイル.キー')として呼び出します。

__('lang.message')

これで、「日本語メッセージ」と表示されているので、無事に読み込めました。

ここで、config/app.phpの言語設定をenに戻してみます。

locale' => 'en',

するとメッセージではなく、「lang.message」が表示されました。

これは、resources/lang/en配下にlang.messageが存在しないためです。
__()で呼び出した場合
言語設定のファイルを読み込み
該当がなければそのままの文字を返す
という風になっているようです。

resources/lang/enに同じようにlangファイルを作成し、messageを定義することで、同じように表示されるようになります。

多言語化が必要な際は検討してきたい。

この記事が気に入ったらサポートをしてみませんか?