Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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や開発コミュニテイに質問するとか、弊社までお問い合わせください。
あと、「ここの翻訳変だよ!」とか、「中国語版作ってみたよ!」とかも大歓迎なのでお待ちしております。(方言版も作れます)

tao_s
オープンソースなweb屋です。 Webベースの業務システムからECサイト、ブログまで何でもござれ EC-CUBE、concrete5のコミッターもやってます コンクリートファイブ ジャパン株式会社 ファウンダー
http://www.xross-cube.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away