2014-10-09

Laravelでローカリゼーションするなら「Translation Manager」がすごく便利!(多言語翻訳ファイルも紹介してます)

さて今回はLaravelのローカリゼーションに関する便利なパッケージを発見したので備忘録として使い方+αをお届けしたいと思います。

実際少し前にLaravelを英語と日本語でローカリゼーションする機会があったのですが、この作業が地味に大変なんです。

つまり、英語のファイルと日本語のファイルが(もちろん)別れているため、一回一回キーを追加したり探したりする必要があります。

いつか自分で管理パッケージをつくろうかと思っていたらやはり先に同じことを考えている人がいたようですね。
さすがはLaravelです。^-^


出典:M. Adiputra


最終結論: ローカリゼーションが必要でなくてもバリデーション用にも使えるパッケージでした!


まず今回使わせていただくパッケージの紹介から。

barryvdh/laravel-translation-manager

※この作者は他にも「laravel-debugbar」や「laravel-ide-helper」などの有名なパッケージを作成しているようですね。心から感謝です。m_ _m



では、早速インストールしましょう。

Laravelをインストールしたフォルダ直下にある「composer.json」を開いて以下のように require にパッケージを追加します。

composer.json

"require": {
(その他のパッケージ),
"barryvdh/laravel-translation-manager": "0.1.x"
},


そして、コマンドから `compser update` を実行しましょう。
自動でパッケージがインストールされます。


そして、パッケージを使えるように設定をします。

app/config/app.php

'providers' => array( (その他のパッケージ),  'Barryvdh\TranslationManager\ManagerServiceProvider',
),
※追記

すみません。migrationする作業が抜けていました。T_T
以下を実行してDBに専用テーブルを作成してください。

php artisan migrate --package="barryvdh/laravel-translation-manager"


つぎに通常のパッケージインストールではあまり使わない以下のコマンドを実行してパッケージ内にある config ファイルをLaravel本体へコピーします。

php artisan config:publish barryvdh/laravel-translation-manager

※注: なぜかわかりませんが、私の場合存在するはずの 


vendor/barryvdh/laravel-translation-manger/src/config/
vendor/barryvdh/laravel-translation-manger/src/config/config.php

が見つかりませんでした。
もし同じことが発生していたら configフォルダを作成し、その中にconfig.php をコピペしてください。


そして、 app/routes.php に

Route::group(array('before' => 'auth_admin'), function() {
    Route::controller('translations', 'Barryvdh\TranslationManager\Controller');
});

を追加すると、http://***.com/translations にアクセスできるようになります。


※もし本番環境で表示したくない場合は、App::isLocal() などを使って場合分けをしたほうがいいですね。



使い方

※まだ app/lang/ja を作っていない場合はフォルダを作成しましょう。


まず、画像にある「import groups」をクリックしましょう。すでに「lang」登録されている単語を抽出します。



それが完了したら、ページを再読み込みすれば以下のようにどのファイルを編集するかを選択できるようになりますのでクリックしましょう。


あとは単語一覧が表示されるので個別に編集していくだけです。
(※まだファイル自体には反映されてません次の「ファイルへの反映」をみてください)




ファイルへの反映

ページには「publish translations」ボタンを押すとファイルに反映されると書いてますが実際はできなかった(おそらく権限を変更すればいけるのかな?)のでもうひとつの方法である「コマンドでの反映」をご紹介します。

コマンドでLaravelをインストールしているフォルダへ移動し、

php artisan translation:export ***

を実行しましょう。
言語ファイルに変更が反映されます。


※ ***は .phpをぬいたファイル名。例えば「messages」「validation」です。


はい!
ということで Translation Manager の紹介は終了です。


おまけ

世界各国の翻訳データを集めたファイルが以下のページからダウンロードできます。
もし、サイト内容が日本だけでなく世界に向けたものなら言語ファイルだけでも追加しておいて損はしないかもしれませんね。

https://github.com/caouecs/Laravel4-lang



Thank you barryvdh and caouecs!
You guy's works must save my time when developing websites.:)))

0 件のコメント:

コメントを投稿