PHP
EC-CUBE
多言語
EC-CUBE4
i18

EC-CUBE4を日本語以外で使う


EC-CUBE4で多言語に対応できる様になりました

スクリーンショット 2018-10-03 19.19.08.png

スクリーンショット 2018-10-03 19.18.24.png

新しいバージョンのEC-CUBE、EC-CUBE Ver.4では日本語以外の言語に対応できる様になりました。

そのため、テンプレート等には日本語は記述されておらず、日本語のメッセージも全て言語ファイルにまとめられています。


  • /src/Eccube/Resource/locale/messages.ja.yaml

  • /src/Eccube/Resource/locale/validation.ja.yaml


言語ファイル

原語ファイルはmessages.[lang].yamlvalidation.[lang].yamlというファイルに分かれており、yaml形式でメッセージIDとメッセージが記述されています。もし、標準の日本語の表記を変えたかったら、messages.ja.yamlを変えると変更できます。

英語版では、messages.en.yamlとかになる感じです。


messages.ja.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: 確認ページへ
...



messages.en.yaml

#====================================================================================

# 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ファイルで設定します。


.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.yamlvalidation.ja.yamlを作成します。

これらのファイルに英語のメッセージをyaml形式で記述していけば表示が英語になります。


コンテンツ等インストールデータの言語設定

ただ、言語ファイルだけではDBの中に入っている内容までは翻訳されません。受注ステータスとか主にマスタ系のデータですね。

これらのデータを英語で利用するためには、インストール段階で英語の初期データをインストールする必要があります。

現状では https://github.com/EC-CUBE/ec-cube/pull/3868 のコミット内容を適用して、.env.installECCUBE_LOCALE=enを追記した状態でインストールすると英語版の初期データでインストールされます。なお、このプルリクエストには、messages.en.yamlも含まれています。Ver. 4.0.1以降では配布パッケージに英語の言語ファイル等含まれています。

この場合、各言語ごとの初期データは/src/Eccube/Resource/doctrine/import_csv/配下にCSV形式であります。

なお、EC-CUBEの公式サイトで配布されているパッケージのテンプレートはこの他言語に対応していません。githubから落とした物を使う必要があります。


現状では1言語のみの対応

現状の仕様では、ひとつのEC-CUBE4のインストールで、複数の言語に対応する様にはなっていません。追加で英語版のECサイトが欲しくなった時に、別で立てるとか、日本で運営するけど海外向けに販売したい時なんかに使う用です。

管理画面とショップフロントで言語を分けたい、ユーザ毎に言語をわけたいとなると、別途カスタマイズが必要になってきます。


本格的な多言語対応のためにはもう一声

上記の設定で表示は英語になりますが、例えばユーザ登録フォームに「フリガナ」のフィールドがあったり、都道府県の選択肢が日本の都道府県になっていたりと、日本以外に対して販売する越境ECをやろうとすると、もう一声という状態です。

スクリーンショット 2018-10-03 19.45.03.png

今後、バージョンが上がっていくに従い対応されたり、プラグインで対応されていくことになると思います。

ご質問等あればEC-CUBEの各ユーザグループの勉強会に行くとか、githubや開発コミュニテイに質問するとか、弊社までお問い合わせください。

あと、「ここの翻訳変だよ!」とか、「中国語版作ってみたよ!」とかも大歓迎なのでお待ちしております。(方言版も作れます)