EC-CUBE4で多言語に対応できる様になりました
新しいバージョンのEC-CUBE、EC-CUBE Ver.4では日本語以外の言語に対応できる様になりました。
そのため、テンプレート等には日本語は記述されておらず、日本語のメッセージも全て言語ファイルにまとめられています。
/src/Eccube/Resource/locale/messages.ja.yaml
/src/Eccube/Resource/locale/validation.ja.yaml
言語ファイル
原語ファイルはmessages.[lang].yaml
とvalidation.[lang].yaml
というファイルに分かれており、yaml形式でメッセージIDとメッセージが記述されています。もし、標準の日本語の表記を変えたかったら、messages.ja.yaml
を変えると変更できます。
英語版では、messages.en.yaml
とかになる感じです。
#====================================================================================
# 共通
#====================================================================================
common.select: 選択してください
common.select__pref: 都道府県を選択
common.select__unspecified: 指定なし
common.select__all_products: 全ての商品
common.required: 必須
common.back: 戻る
common.close: 閉じる
common.send: 送信する
common.registration: 登録する
common.change: 変更
common.delete: 削除
common.ok: OK
common.cancel: キャンセル
common.go_to_top: トップページへ
common.go_to_cart: カートへ進む
common.go_to_confirm: 確認ページへ
...
#====================================================================================
# Common
#====================================================================================
common.select: Please select
common.select__pref: Select prefecture
common.select__unspecified: Unspecified
common.select__all_products: All Products
common.required: Required
common.back: Go back
common.close: Close
common.send: Submit
common.registration: Save
common.change: Change
common.delete: Delete
common.ok: OK
common.cancel: Cancel
common.go_to_top: Back to Home
common.go_to_cart: Proceed to Cart
common.go_to_confirm: Review
...
日本語以外での利用方法
EC-CUBEの多言語周りの設定はEC-CUBEのルートディレクトリにある.env
ファイルで設定します。
ECCUBE_LOCALE=en #言語設定
ECCUBE_TIMEZONE=Asia/Tokyo #タイムゾーン
ECCUBE_CURRENCY=USD #利用する通貨
ECCUBE_LOCALE
が言語設定です。標準ではja
が利用されます。
UIの言語設定
たとえばEC-CUBE4を英語で利用するためには、上記の.env
ファイルで言語設定をen
にして、/src/Eccube/Resource/locale/
配下にmessages.en.yaml
とvalidation.ja.yaml
を作成します。
これらのファイルに英語のメッセージをyaml形式で記述していけば表示が英語になります。
コンテンツ等インストールデータの言語設定
ただ、言語ファイルだけではDBの中に入っている内容までは翻訳されません。受注ステータスとか主にマスタ系のデータですね。
これらのデータを英語で利用するためには、インストール段階で英語の初期データをインストールする必要があります。
~~現状では https://github.com/EC-CUBE/ec-cube/pull/3868 のコミット内容を適用して、.env.install
にECCUBE_LOCALE=en
を追記した状態でインストールすると英語版の初期データでインストールされます。なお、このプルリクエストには、messages.en.yaml
も含まれています。~~Ver. 4.0.1以降では配布パッケージに英語の言語ファイル等含まれています。
この場合、各言語ごとの初期データは/src/Eccube/Resource/doctrine/import_csv/
配下にCSV形式であります。
なお、EC-CUBEの公式サイトで配布されているパッケージのテンプレートはこの他言語に対応していません。githubから落とした物を使う必要があります。
現状では1言語のみの対応
現状の仕様では、ひとつのEC-CUBE4のインストールで、複数の言語に対応する様にはなっていません。追加で英語版のECサイトが欲しくなった時に、別で立てるとか、日本で運営するけど海外向けに販売したい時なんかに使う用です。
管理画面とショップフロントで言語を分けたい、ユーザ毎に言語をわけたいとなると、別途カスタマイズが必要になってきます。
本格的な多言語対応のためにはもう一声
上記の設定で表示は英語になりますが、例えばユーザ登録フォームに「フリガナ」のフィールドがあったり、都道府県の選択肢が日本の都道府県になっていたりと、日本以外に対して販売する越境ECをやろうとすると、もう一声という状態です。
今後、バージョンが上がっていくに従い対応されたり、プラグインで対応されていくことになると思います。
ご質問等あればEC-CUBEの各ユーザグループの勉強会に行くとか、githubや開発コミュニテイに質問するとか、弊社までお問い合わせください。
あと、「ここの翻訳変だよ!」とか、「中国語版作ってみたよ!」とかも大歓迎なのでお待ちしております。(方言版も作れます)