質問 > その他 > フロント画面で表示言語の切り替えが可能か |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
liehuo |
投稿日時: 2020/12/30 0:49
対応状況: −−−
|
新米 登録日: 2020/12/30 居住地: 投稿: 5 |
フロント画面で表示言語の切り替えが可能か お客様に見えるフロント画面で閲覧するお客様が自分に合った言語を選択し、表示言語を切り替えられることが可能でしょうか?やり方をご教授お願い致します。
|
468 |
投稿日時: 2020/12/30 13:39
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: フロント画面で表示言語の切り替えが可能か 今はGoogle ウェブサイト翻訳ツールがサービスが終了してしまった為、
商品情報を含めてユーザー側で複数言語の表示切替を行えるようにするには、かなりのカスタマイズが必要となります。 残念ながら、とてもじゃないですがここでやり方を教える事が出来るようなボリュームではないと思います。
|
liehuo |
投稿日時: 2020/12/30 18:45
対応状況: −−−
|
新米 登録日: 2020/12/30 居住地: 投稿: 5 |
Re: フロント画面で表示言語の切り替えが可能か 468さま
ご連絡ありがとうございます。 ちなみにtwigにtransフィルタを使用しているが、日本語のままで表示されるのは、「Google ウェブサイト翻訳ツールがサービスが終了」の原因でしょうか? 例: { '配送情報'|trans }} ご注文手続き画面で日本語「配送情報」が表示されます。 .envの設定 ECCUBE_LOCALE=en |
468 |
投稿日時: 2020/12/30 20:24
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: フロント画面で表示言語の切り替えが可能か .envの設定がサーバにキャッシュされているのではないでしょうか?
管理画面>コンテンツ管理>キャッシュ削除を実行するとenの言語が反映されるのではないでしょうか? (envの設定はサーバ単位に反映されると思いますのでサイトにアクセスしてきたユーザーに合わせて言語を切り替えるという事はできないと思います。 リクエストヘッダーのAccept-Languageに合わせてサイトの言語を切り替えるにはカスタマイズが必要になるかと思います)
|
liehuo |
投稿日時: 2020/12/31 9:45
対応状況: −−−
|
新米 登録日: 2020/12/30 居住地: 投稿: 5 |
Re: フロント画面で表示言語の切り替えが可能か ご返信ありがとうございます。
envの設定はサーバ単位に反映されることを理解しました。 ちなみに教えて頂いたやり方でキャッシュを削除しても、twigに記載した日本語(<label>{{ '配送方法'|trans }}</label>)がenの言語に反映されないようです。一部PHPコードで埋めた日本語がenに変わりました。 |
468 |
投稿日時: 2020/12/31 10:37
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: フロント画面で表示言語の切り替えが可能か すみません。勘違いしていました。
twigファイル内の記述は以下のようにメッセージIDを引数で渡す形に書き換える必要があるのではないかと思います。 <label>{{ 'front.mypage.delivery_provider'|trans }}</label> /src/Eccube/Resource/locale/以下の messages.ja.yamlと validators.ja.yaml でメッセージIDを確認できます。
|
liehuo |
投稿日時: 2020/12/31 10:59
対応状況: −−−
|
新米 登録日: 2020/12/30 居住地: 投稿: 5 |
Re: フロント画面で表示言語の切り替えが可能か ご返信ありがとうございます。
標準機能のtwigに「<label>{{ '配送方法'|trans }}</label>」のように直接日本語で定義した箇所が多く存在しています。かなりのカスタマイズが必要となりますね。 |
DELIGHT |
投稿日時: 2021/1/4 18:35
対応状況: −−−
|
仙人 登録日: 2010/2/3 居住地: 熊本県・九州・長野県・関東甲信越 投稿: 572 |
Re: フロント画面で表示言語の切り替えが可能か こんにちは。
少し長いですがご容赦ください 僕ができたやり方ですが localeにあるmessages.〇〇.yamlの言語切り替え({{'hoge'|trans}}の言語切り替え)は EventListener.php <?php ~(割愛) use Symfony\Component\DependencyInjection\ContainerInterface; use Eccube\Common\EccubeConfig; use Symfony\Component\HttpKernel\KernelEvents; ~(割愛) private $container; private $eccubeConfig; public function __construct( EccubeConfig $eccubeConfig, ContainerInterface $container ){ $this->eccubeConfig = $eccubeConfig; $this->container = $container; } public static function getSubscribedEvents() { return [KernelEvents::REQUEST => 'onKernelRequest']; } public function onKernelRequest(GetResponseEvent $event) { $request = $event->getRequest(); $lang = $request->get('lang'); //<-フロントのinput name="lang"のvalue 例)'en'や'ja'など $request->setDefaultLocale($lang); } という形でできました。 ※参考にした記事があったのですが見つかりませんでした・・ また商品名(など)を多言語にするのであれば https://panda-telecoms.github.io/2020/06/26/%E3%80%90EC-CUBE4%E3%80%91DoctrineExtensions%E3%81%A7EC-CUBE%E3%81%AEDB%E3%82%92%E5%A4%9A%E8%A8%80%E8%AA%9E%E5%8C%96%E3%81%99%E3%82%8B/ を参考にするといいと思います。 また、プラグイン開発が前提(挫折しました)でしたので他の実装の挙動の兼ね合いがありバージョンはeccube4.0.4~4.0.5?でのみでしか動作を確認できておりません。 いずれにしても全て多言語対応させるとなるとかなりのカスタマイズが必要になりますが少しでも参考になれば幸いです 追記)不要な記述が多かったので修正しました
|
liehuo |
投稿日時: 2021/1/4 18:58
対応状況: −−−
|
新米 登録日: 2020/12/30 居住地: 投稿: 5 |
Re: フロント画面で表示言語の切り替えが可能か 明けましておめでとうございます。
とてもありがたいアドバイスを頂き、ありがとうございます。 このやり方を参考させて頂きこれからカスタマイズしてみます。 ありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |