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


laravel-helper-lang

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']);

多言語化 5.5 Laravel

便利すぎるぞLaravel


コメント

このブログの人気の投稿

Linuxでファイルの改行コードLF⇔CRLFを変換する方法

RHEL 7でスタティック(静的)ルートを追加する4つの方法

SQLPlusでのOracleリモート接続とSQLファイルを実行する方法