今日は Laravel × AdminLTE を使った際の Sidebar の多言語化対応の方法について説明します。
Contents
環境
- PHP v7.2.8
- Laravel v5.5.42
- Composer v1.6.5
使用している AdminLTE のライブラリはこちら
→ jeroennoten/Laravel-AdminLTE
問題
README に記載がある通り、AdminLTE でお馴染みの Sidebar は Config ファイルをいじることで編集することができます。
→ https://github.com/jeroennoten/Laravel-AdminLTE#5-configuration
しかし、Config ファイル内で多言語化の関数を使うことができないため、Sidebar の Label を多言語化することができないという壁にぶち当たりました。
解決策
結局、Config ファイル内で多言語化の関数を使うことはできなそうなので、表示している blade 側を編集することで対応する方向にしました。
前提としては README の記載通り、View をカスタマイズ可能にしておく必要がありますのでご注意ください。
→ https://github.com/jeroennoten/Laravel-AdminLTE#7-customize-views
$ php artisan vendor:publish --provider="JeroenNoten\LaravelAdminLte\ServiceProvider" --tag=views
このコマンドを叩くとカスタマイズ可能な View ファイルが作成されるので、多言語化対応すべくファイルを編集していきます。
具体的には Laravel の trans 関数を利用して text を表示するように変更します。
その後、呼び出される Config ファイル内の text を、trans 関数に対応するように変更していきます。
あとは trans 関数で呼び出される多言語ファイルを追加するだけです。
英語のリファレンスでも多言語化に言及しているものが見当たらなかったので記事にしました。
細かい Tips の記事になってしまいましたが、今度はライブラリのインストール方法や使い方などまで記事を書いていきたいなと思います。