【Laravel】日本語化した翻訳文字列を超便利なヘルパ関数で取得する

Laravelには__()
というヘルパ関数があることをご存じだろうか。(アンダーバー2つ)
例えば、以下のように日本語メッセージファイルを作ったとして、それを取得するには、Lang::get()
メソッドを使用していました。
Laravelの多言語化
以前、Laravelを日本語化する方法を紹介しましたので、今回は日本語化したメッセージを便利に取得する方法をご紹介します。
翻訳が面倒だったLaravel 5.5(LTS)の日本語メッセージファイル一式を作成し、GitHubで公開していますので、自由にダウンロードしてください。バリデーションやページネーションなど4つのメッセージファイルを日本語化しています。Laravel 5.5 日本語メッセージファ... Laravel 5.5の日本語メッセージファイルを公開!バリデーションを日本語化! - Minory |
/resources
/lang
/en
messages.php
/ja
messages.php
日本語メッセージの取得
\Lang::get('message.welcome');
しかし、そんなに長ったらしく書かなくても簡単に取得できることを知りました。
それが、__()
というヘルパ関数です!
実際にはこのように取得します。
echo __('messages.welcome');
短っ!!
キーに文字列を使用する
しかも、resources/lang
直下に、resources/lang/ja.json
を作り、
{
"I love programming.": "私はプログラミングが大好きです。"
}
このように書いて、
echo __('I love programming.');
このように取得すると、もし言語ファイルが存在しない場合でも「I love programming.」をそのまま表示してくれるという優れものです。
プレースホルダを定義する
さらに!コレだけではありません!
プレースホルダを定義して置き換えることも簡単にできます。
このように:~(コロン~)と定義して、
'welcome' => 'Welcome, :name',
__()
関数の第2引数に配列で入れるだけです。
echo __('messages.welcome', ['name' => 'dayle']);
便利すぎるぞLaravel!
コメント
コメントを投稿