こんばんは、のるぼるのんです。雨が多くて嫌な季節ですが、インドア派のプログラマーの皆様には関係のない話でしたね。え?アウトドア派?まあ気にせずやっていきましょう。
前回はset_localeで日本語化、マルチリンガル化しましたね。今回はvendor系の言語ファイルをオーバーライドして外部プラグインを日本語化していきますよー。
今回もvendorプラグインには管理画面パッケージ「Voyager」を使っていきます。是非お付き合いいただけると幸いです。
①Laravel5.6, 5.7 インストール
今回使用するLaravelはversion5.6もしくは, 5.7になります。
②Voyagerインストールと管理画面の認証を個別化
え、リンクが多い?ここまでは前準備だから、以前の記事を見て、導入してください。。。笑
③言語ファイル設置、フロント日本語化
まずはLaravelの日本語用言語ファイルを準備します。
1 |
cp project_dir/resources/lang/en/* cp project_dir/resources/lang/ja |
コピーした言語ファイル(auth.phpなど)に日本語翻訳を加えていきましょう。
日本語翻訳のファイル内容はLaravel公式docsに記載されています。
config/app.phpを編集します
1 2 |
'locale' => 'ja', 'fallback_locale' => 'en', |
設定が完了したら、わざとユーザー登録のバリデーションに引っかかってみましょう。エラーメッセージが日本語化されていたらOK!
④外部パッケージの言語ファイルをオーバーライド
はい、今回のメインです。現在の設定は
・Laravel5.6インストール
・Voyagerインストール
・フロント管理画面認証分離
・フロントメッセージ日本語化
です。
では外部vendorの言語ファイルをオーバーライドしていきます。
ディレクトリを作成、言語ファイルをコピー
1 2 |
mkdir project_dir/resources/lang/vendor/voyager/ja cp vendor/tcg/voyager/publishable/lang/en/* resources/lang/vendor/voyager/ja/ |
作成したvoendorディレクトリにVoyagerの言語ファイルをコピー。内容に合わせて翻訳文章を編集します。
vendor以下の名前は公式を参考に、作成ください。
voyager.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
'multilingual' => [ /* * Set whether or not the multilingual is supported by the BREAD input. */ 'enabled' => false, /* * Set whether or not the admin layout default is RTL. */ 'rtl' => false, /* * Select default language */ 'default' => 'ja', // defaultを編集 /* * Select languages that are supported. */ 'locales' => [ 'en', // 'pt', 'ja', ], ], |
コンフィグファイルの中でVoyagerのデフォルト言語を”ja”にします。
ではコピーしたファイルをいじって、一部日本語化してみます。
project_dir/resources/lang/vendor/voyager/ja/generic.php
1 2 3 4 5 6 7 8 |
<?php return [ 'action' => 'Action', 'actions' => 'メニュー', //BREADのメニューアクションを日本語化してみます 'add' => 'Add', 'add_folder' => 'Add Folder', ....... |
サイトを見てみます。
画面右に「メニュー」という文字列があるのがお分かりでしょうか。しっかり日本語化されているようです。
この言語ファイルのオーバーライドはVoyager以外にも使用できますので、外部vendorご使用の皆様、こんな方法もあるよ!ということで頭に入れておいていただけると幸いです。不明点、もっとこんな方法があるよ、という方はお気軽にコメントください。
記事が長くなりそうですので、次回は今回の続き。Voyagerユーザー登録BREADページで言語”ja”を選択し、ユーザーに合わせた言語で閲覧できるように、VoyagerでContorller、リソースのオーバーライドをしていきます。
コメントを書く