日本語と英語で表示する web ページを作成しています。
例えば、
https://website/grand/top は日本語
https://website/en/grand/top は英語
で表示するような構成の場合、同じコントローラで表示に使う blade ファイルを分別するような仕組みを考えています。
最初から言語切り替えがあるような仕様で設計されていればよかったのですが、都合によりこのような形で設計せざるを得ない状況です。
/grand/top のコントローラは日英同じで、view() で呼び出す blade ファイルを
日本語は top.blade.php
英語は top_en.blade.php
指定する形を取ろうと考えています。
こうすることで、同一コントローラで表示する blade ファイルだけ切り替えることが実現できると考えております。
lang ファイルに日本語と英語を用意して対応する方法もありますが、これも事情があって呼び出す blade ファイルを切り替える方式にせざるを得ない状況です。
切り替えに使うための値は setLocale() でセットした値で判断する考えです。
setLocale() にセットする値は、$request->fullUrl() などから正規表現で en が含まれれば英語、そうでなければ日本語とする Middleware を作成する考えです。
そこで教えていただきたいことがあります。
route ファイルで
Route::get('/grand/top', 'Grand\TopController@index');
Route::get('/en/grand/top', 'Grand\TopController@index');
と書けば同じコントローラが呼び出せますが、この書き方だと日本語が 100 行ある場合、似たような書き方をした英語も 100 行用意するのことなるので、この記述をもっと簡潔に書ける方法があれば知りたいです。
似たようなことを解決された方がいらっしゃるようでしたら、教えていただけますでしょうか。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー