はじめに
Laravel Mixで開発中に、Bladeに日本語のメッセージ関連が散りばめられ、汚く、修正する際も探すのが手間でした。実務で日本語メッセージ関連は綺麗に纏められていたのを思い出し、同じようにやってみました。
開発状況(Version)
macOS Big Sur
Laravel Mix 6.0
Laravel 8.83.13
PHP 7.3.29
node.js 16.13.2
Vue.js 2.6.14
※ココから先のシェル名の「Bash」となっている箇所は全て「zsh」です。
ブログのコードエディターの言語設定に「zsh」がないため、「Bash」にしています。
結論
フォルダ構成
フォルダ構成は下記となっています。
src
|_resources
| |_views
| | |_list
| | |_index.blade.php
| |
| |_lang
| |_ja
| |_list.php
|
|_config
|_app.php
各フォルダに下記のように書けば、使用できます。
index.blade.php
----- 抜粋 -----
<div class="container">
<div class="mt-5 mb-5">
<h4>{{ __('list.search_title') }}</h4>
</div>
</div>
----- 抜粋 -----
list.php
<?php
return [
'search_title' => '動画検索',
];
app.php
----- 抜粋 -----
/*
|--------------------------------------------------------------------------
| Application Locale Configuration
|--------------------------------------------------------------------------
|
| The application locale determines the default locale that will be used
| by the translation service provider. You are free to set this value
| to any of the locales which will be supported by the application.
|
*/
'locale' => 'ja',
----- 抜粋 -----
ブラウザ画面
元々の構造
元々、LaravelのBladeファイルに下記のように実装していまいした。
元々のフォルダ構成
src
|_resources
|_views
|_list
|_index.blade.php
元々のindex.blade.php
----- 抜粋 -----
<div class="container">
<div class="mt-5 mb-5">
<h4>動画検索</h4>
</div>
</div>
----- 抜粋 -----
方法
メッセージファイルを作成する
resources/langの配下に、jaフォルダを作成します。
そのjaの配下に、linst.phpを作成します。
※今後、ページごとにメッセージ関連のファイルを分けたい場合は、同じように、jaフォルダの配下に作成します。
<?php
return [
'search_title' => '動画検索',
];
Bladeでメッセージを取得する
メッセージを取得する方法は2つあります。
その1:Langファサードを使って取得する。
その2:__を使って取得する。
今回は、その2の「 __ 」を使用して、実装します。
書き方は、
{{ __('ファイル名.配列のキー') }}
で、呼び出すことができます。
今回の場合は、下記のように書きます。
----- 抜粋 -----
<div class="container">
<div class="mt-5 mb-5">
<h4>{{ __('list.search_title') }}</h4>
</div>
</div>
----- 抜粋 -----
言語設定を指定する
config/app.phpで’local’ => ‘en’の箇所があるので、下記に変更します。
----- 抜粋 -----
/*
|--------------------------------------------------------------------------
| Application Locale Configuration
|--------------------------------------------------------------------------
|
| The application locale determines the default locale that will be used
| by the translation service provider. You are free to set this value
| to any of the locales which will be supported by the application.
|
*/
'locale' => 'ja',
----- 抜粋 -----
※ここが「en」のままでも使用することはできますが、その場合は、list.phpを下記の階層に作成します。
src
|_resources
| |_views
| | |_list
| | |_index.blade.php
| |
| |_lang
| |_en ←ここ
| |_list.php
|
|_config
|_app.php
最後に
こうすることにより、綺麗に纏められ見やすくなりました。今後も、メッセージが増えた際も、同様に追加していけばいいですし、修正も簡単になりました。
今後のために完全に備忘録です。
コメント