言語ファイル設置、読み込みで多言語サイトを構築しようこんにちはこんばんは、最近肩こりがやばいのるぼるのんです。最近の記事ではバリデーションメッセージを日本語化したり、Voyagerから日本語ファイルをアップロードしたりしました。自分でもLaravelの言語ファイル関係は使いこなせていないなと思うので、言語ファイル、locale関連をもう一度ゆるく確認ようと思った次第です。いうことでプロジェクト作成直後のLaravelからちゃちい多言語サイトを作ってみようと思います。ホーム画面以外の文章は言語ファイルに設定し、日本語サイトと英語サイトを作ります。resources/lang/ja/validation.php作成したresources/lang/ja/filesにlaravel公式docsに記載されている翻訳内容(リンクの他にも3つあるよ)をコピーしておきます。config/app.phpローケルを設定します。今回は第一言語を日本語とし、第一言語の翻訳が見つからない時は英語から翻訳文字列を探します。'en',resources/views/welcome.blade.php今回は簡易的に、welcome.blade.phpのリンク部分を日本語サイト、英語サイトのトップへのリンクに変更します。Site</a></div></div>web.phpルーティングを設定します。この時、使用するローケルをprefix毎に設定します。'HelloController@index');});$localeにprefix(ローケルディレクトリ名)を取得保存、リクエストURIが/ja/...の時は日本語に、/en/...の時は英語にsetLocaleします。view('index');}}dumpはただ今のローケルを確認しているだけです。やっていることはindex.blade.phpを呼び出しているだけ。Index.blade.php@lang('message.hello')1@lang('message.hello')これだけ!w@langディレクティブを使用すると、現在のローケル以下にある言語ファイルを読み込んで翻訳してくれます。今回のターゲットはmessage.phpの’hello’です。のるぼるのるのです!',];?>@lang(‘message.hello’)で呼ぶ翻訳文書を記述しています。画面下にリンクがあります。日本語サイトへ行ってみます。@langディレクティブからja/message.phpに記述した文字列が表示されています(下半分の驚きの白さ)。今度は英語サイトに行ってみますこちらも無事、英語翻訳されました。画面上部にはdump()で取得したlocale設定値が表示されています。‘en’となっています。コントローラーでsetLocaleした方が確実に簡単だったんですけど、記述が多くなること、prefixの中で一発で決めたかったので、web.phpで色々やってみました。urlの取得で地味に時間使ってしまいました、しょうもないっすね)jsで色々やる時も同じようにprefixでグループ分けて、リダイレクトさせれば良さそうですね。雑にやってしまいましたが、他にもっとこういう方法あるよ!って方、是非教えていただけると幸いです。機能を紹介できれば、と思います。2018.11.06こんばんは、いまだに風邪が治らないのるぼるのんです。2018.09.20こんばんは、のるぼるのんです。2018.08.27結構前に遊びで作ったwebアプリケーションに久々にアクセスしてみた。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。Profileのるぼるのん元化学系の学生→謎の電気系配属→健康を謳歌する為退職→なぜかフリーランス。今はとある目標の為副業アンド副業。名前は研究してた物質の名前から。WordPress.。