公式の多言語化対応の問題点
- 各言語の
messages.[lang].yaml
を用意しても一言語しか使えない。 - ユーザー側画面と管理画面で表示言語を分けることが出来ない。
解決策
下記のコード変更例では、.env
ファイルのECCUBE_LOCALE
の値に関係なく、
ユーザー側画面は、URLのサブディレクトリによって日本語と英語の表示が分かれ、
管理画面は、日本語で固定表示される。
app/config/eccube/routes.yaml
# ユーザー側画面のルーティング
controllers:
resource: ../../src/Eccube/Controller/
type: annotation
prefix: /{_locale}
requirements:
_locale: en|ja
# 管理画面のルーティング
admin_controllers:
resource: ../../src/Eccube/Controller/Admin/
type: annotation
defaults:
_locale: ja
課題
- あくまでもソースファイルでの多言語化対応であるため、依然として、DBの中に入っている内容の多言語化は出来ない。