質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

3300閲覧

Laravelの多言語化(ローカライズ)について教えてください。

shimayu

総合スコア35

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2017/03/31 07:50

Laravel5での多言語化展開について。
テキスト部分に関しては言語別ファイルを用意して対応出来ることはわかりました。
知りたいのは画像を言語ごとに切り替える方法です。

例えば、「注文」と書かれたボタンがあるとします。これを「order」や「订购」、「주문하다」など、各言語ごとに画像を用意したとします。
これをどのように切り替えれば良いのか方法がわかりません。

出来れば自動で切り替えが出来ると便利だと思っていますがそのような方法はありますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

自己解決しました。

画像を言語ごとに変更したい場合、 <img src="keyvisual_{{$lang}}.jpg">などとし、変数には現在の言語を格納するようにしたところうまくいきました。

投稿2017/05/24 08:48

shimayu

総合スコア35

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

これはあくまで僕がLaravelをよく知らない上で、ドキュメントを読んだ限りで思いついた実装として受け取ってください。

まず画像ファイルに命名規則をつけておきます。例えばorder.pngであればen__order.png ch__order.pngといった具合に。

続いて、Laravel PHP側で現在のロケール判定を行い、書き込むタグの内容もしくはソースの内容を書き換えてやります。

php

1$order_src = "order.png" 2 3$locale = App::getLocale(); 4 5if (App::isLocale('en')) { 6 // 英語画像を読み込ませる。 7 $order_src = preg_replace('/(.*)(\.png)/', 'en__\1\2'); 8}

もしかしたらもっとスマートな方法があるかもしれませんし、JavaScriptで書き換えるという方法もあると思いますが、こちらを自分の回答とさせていただきます。

参考資料

投稿2017/03/31 08:23

manzyun

総合スコア2244

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shimayu

2017/04/05 08:44

ご回答ありがとうございます。 対象ファイルが数個程度なら置換で対応できます。しかし、対象の画像ファイルは1言語に対して数十以上ありますので、数言語合わせると数百という数になってしまいます。 中々対応は難しそうですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問