Magento2 日本語化手順:3rd Party製日本語化パッケージ使用(2022年:バージョン2.4系)

2022年10月24日

イントロダクション

Magento2.4.*(2.4系)に対してサードパーティ製日本語化ロケールパッケージをインストールする手順について紹介します。

なお、Adobe公式の日本語ロケールパッケージのインストール手順については、こちらの記事をご参照ください。

バージョン2.4系用の公式日本語化ロケールがGithubで公開されているのですが「Translation Dictionary方式」のみで構成定義されているためなのかフロントページの翻訳日本語ワードがいまいちな感じがします。代わりとして使える2.4系に対応した日本語化エクステンション"Japanese Language Pack"を当サイト管理人である私自身で手作業で作成し、サードパーティ製エクステンションとして Magento Marketplace に無償で公開しました。
本記事では、このサードパーティ製エクステンションの導入手順を紹介します。

この日本語化エクステンションで工夫しているポイントとして「Translation Dictionary方式」と「Language Packages方式」を併用して日本語化の翻訳文字を定義しています。
「Translation Dictionary方式」とは、Magentoの全機能モジュールで共通1つのロケール辞書定義で英語文字列を日本語文字列へ1対1で置き換える方式です。
もう一つの「Language Packages方式」とは、Magentoの機能モジュールごとに置き換える日本語文字列を定義する方式です。英単語で1つのワードで複数の意味を持っているような単語が存在します、そのまま共通の1つの日本語文字列で置き換えるルールだとネイティブの日本人強い違和感を感じるケースがあります。ECストアにとってお客様に「日本国外運営の詐欺サイトでは?」と不安にさせる原因となり深刻な問題です。
例えば、Magentoアプリ内には"Summary"という英語ラベルがあります。この"Summary"英語文字列は商品レビュー投稿時の「レビュー内容のサマリ(一般的にタイトル)」の入力欄ラベルに使われています。またカート画面の「お支払内容のサマリ情報」のエリアにも同じく"Summary"英語文字列が使われています。このような場合「Translation Dictionary方式」だと適切に違和感のない日本語の置き換えができません。(公式日本語ロケールではとちらも日本語ワード「サマリ」へ置き換わってしまいます)。
このようなケースに対処できるように「Language Packages方式」を用いています。
“Japanese Language Pack"エクステンションでは、この例の場合だと
レビュー投稿時の画面の"Summary"を「レビュータイトル」に置き換え
カート画面の"Summary"を「お支払い内容」に置き換え
となるようにロケール辞書ファイルを機能エクステンション別に定義しています。

日本人である私が、なるべく機械翻訳に頼ることなく各画面を目視で確認しながら、なるべくナチュラルな日本語となるように、日本の商習慣に合うように意識してロケール辞書のワードを選定して定義しました。今あなたが日本人向けのストアを準備しているのであれば是非使ってみてください。

なお、このエクステンションは、文字の表示を原文の英語から日本語に置き換えるものです。日本語の慣習にあった名前(姓・名)の表示順序の調整、住所表記の調整、また通貨表示(小数点の除去)などはされません。管理人が作成した “Adjust Address Info For Japanese”エクステンション, “Hide Price Zero Decimal”エクステンション を導入することでそれらの調整が手軽に実装できます。ぜひご検討ください。

Magento2日本語化手順

Magento2ストアの表示を日本語化するには下記のような手順となります。

  • Magento Marketplaceでエクステンションの購入手続き(0円)
  • Composerによりモジュールをダウンロード
  • “Language Packages”の適用
  • コンテンツリソースのデプロイ
  • フロントエンドの言語ロケール設定
  • バックエンド(=管理画面)の言語ロケール設定

(※)既に公式日本語化パッケージをインストール済みの場合には、日本語定義が競合するため事前に公式ロケールパッケージを削除する必要があります。こちらの 公式日本語ロケールのアンインストール手順 記事を参考にアンインストールしてください。

Marketplaceで購入手続き

Magento Marketplaceで無料の日本語化エクステンションの購入手続きをします。あらかじめ会員登録を済ませて、MarketPlaceheへログインしておきます。
検索ワード窓に"Japanese"と入力すると、マッチする公開エクステンション候補が表示されるので、その中かから"Japanese Language Pack“を選択します。

Magento Marketplaceから"Japanese Language Pack"を選択する図

”Your store version”のセレクトボックスを"2.4(Open Source(CE))"選択。"Add to Cart"ボタンをクリックしてカートへ入れます。

"Japanese Language Pack"エクステンションのバージョン選択する図

商品がカートに入ると画面上部のカートアイコンに"1″が表示されます。このアイコンをクリックすると現在のカート内容が表示されるので"Proceed to Checkout"をクリックして購入手続きに進みます。

カートアイコンから"Proceed to Checkout"を選択する図

購入手続きにおいていくつか注文者情報としていくつかの必須入力事項を要求されます。
・First Name
→名前(名)をローマ字で入力
・Last Name
→名前(姓)をローマ字で入力
・Street Address
→市区町村以降の住所をローマ字で入力(一部だけでもOKなようです)
・State/Province
→都道府県を入力(例:Tokyo)
・Country
→国を選択します。日本であればJapan
・City
→市区町村をローマ字で入力
・Zip/Postal Code
→郵便番号を入力
・Phone Number
→電話番号を入力
適宜入力してから"Update"ボタンを押します。

注文者情報を入力する画面イメージ

“Place Order"をクリックして購入を確定させます。
なお画面に"No Payment Information Required"と表示されているとおり、このエクステンションは無料なので支払いは発生しません。

支払い方法を入力する画面イメージ

購入手続きが完了すると、"Thank you for your purchase!"メッセージと共に下記のような画面が表示されます。

エクステンション購入完了画面イメージ

Market Palaceのマイページから"My Parchases"(購入済み一覧)を選択すると購入済みのエクステンションがリスト表示されます。

Market Palaceのマイページから"My Parchases"(購入済み一覧)を表示する画面イメージ

今回購入手続きをした、"Japanese Language Pace"エクステンションを選択するとコンポーネント名バージョンが表示されます。画面上の “Component name:"のエリアの “szmake/ja_jp" がそれにあたります。

購入済みエクステンション情報画面イメージ

モジュールのダウンロード

Composerを使ってエクステンションモジュールのソースファイル一式をダウンロードします。
自ストアMagentoサーバーへCLIコンソールで接続します。
ユーザーはMagentoユーザーでセットアップ済みのMagentoドキュメントルートディレクトリへ移動します。
composerのコマンドの書式は、"composer require <module_name>:<version>" になりますので、
今回は、コンポーネント名=szmake/ja_jp, バージョン=100.0.1なので
$ composer require szmake/ja_jp:100.0.1 になります。
(※)本記事のコマンド例は Magentoユーザー="magento_user", Magentoドキュメントルートディレクトリ="/web/shop.szmake.net/www" としています。適宜ご自身のサーバー環境に合わせてください。

$ su - magento_user
$ cd /web/shop.szmake.net/www
$ composer require szmake/ja_jp:100.0.1

(※)初回Magentoセットアップ時にリポジトリrepo.magento.comの認証キー(~/.config/composer/auth.json)を保存していなかった場合、リポジトリのアクセスに際して、下記のようにUsernameとPasswordの認証入力を求められます。
その場合、Marketplaceの”Authentication Key”取得方法の手順に従ってご自身のアカウントの AccessKey を入力します。
“Username" → [Public Key]の文字列を入力
“Password" → [Private Key]の文字列を入力

Authentication required (repo.magento.com):
      Username:
      Password:


Requireコマンドにより下記のようなcomposerのログが表示され、エクステンションのソースコード一式がダウンロードされ、"./vendor/szmake/ja_jp/" の階層位置に配置されます。

./composer.json has been updated
Running composer update szmake/ja_jp
Loading composer repositories with package information
In Laminas\DependencyPlugin\DependencyRewriterV2::onPrePoolCreate
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
  - Locking szmake/ja_jp (100.0.1)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Downloading szmake/ja_jp (100.0.1)
  - Installing szmake/ja_jp (100.0.1): Extracting archive
Package symfony/debug is abandoned, you should avoid using it. Use symfony/error-handler instead.
Package php-cs-fixer/diff is abandoned, you should avoid using it. No replacement was suggested.
Generating autoload files
122 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
PHP CodeSniffer Config installed_paths set to ../../magento/magento-coding-standard,../../phpcompatibility/php-compatibility
No security vulnerability advisories found

“Language Packages”の適用

“language package"コマンドは、最初に一度だけ実行すればOKです。
ただしComposerでMagentoのプログラムをバージョンアップした時(Magentoモジュールのソースコードを更新した場合)この操作を再実行する必要があります。

$ php ./bin/magento i18n:pack \
-m replace -d ./vendor/szmake/ja_jp/package_translation/ja_JP.csv ja_JP

正常に処理が完了すると、下記メッセージが表示されます。

------------------------------------------------------------------------------
Successfully saved ja_JP language package
------------------------------------------------------------------------------

コンテンツデプロイ

翻訳リソースキャッシュファイル"js-translation.json"を削除してからデプロイして最後にキャッシュクリアをします。

$ cd /web/shop.szmake.net/www
$ rm pub/static/adminhtml/Magento/backend/ja_JP/js-translation.json
$ rm pub/static/frontend/Magento/luma/ja_JP/js-translation.json
$ php bin/magento setup:static-content:deploy ja_JP -f
$ php bin/magento cache:flush

(※)"Magento/luma" の部分は現在有効なテーマ設定に合わせること。デフォルトのLuma以外のテーマ場合には"<Vendor>/<theme>"とします。
例)オリジナルテーマが<Vendor>="Myvendor", <theme>="custom" の場合 rm pub/static/frontend/Myvendor/custom/ja_JP/js-translation.json

言語モードの設定について

ストアフロントの言語モード、バックエンドの言語モードそれぞれ設定します。

フロントエンド言語ロケール

[Step.1]動作モードを"developer mode"に変更します。
“Locale Options::Locale" の設定変更は、MagnetoがDeveloperモードの時のみ変更できるため、最初にMagentoの動作モードをDeveloperモードに変更する必要があります。
Ref: https://experienceleague.adobe.com/docs/commerce-operations/configuration-guide/cli/set-mode.html?lang=en

$ php -f ./bin/magento deploy:mode:set developer

[Step.2] ロケール設定を“Japanese(Japan)”に変更します。
バックエンド画面 Stores > Configuration > General > Locale Options へ移動します。
すると、ロケール設定ページが表示されます。ここで"Japanese(Japan)"を選択して"Save Config"をクリックしてセーブします。

(※)もしもLocaleのドロップダウンが無効化されている場合。原因はMagentoの動作モードがDeveloperモードでないためです。その場合、前述(Step.1)の操作で"developer mode"に変更してください。

Magento2:"Japanese Language Pack【日本言語化パック】"ロケール設定画面ドロップダウン無効時

[Step.3]設定キャッシュをクリアします。

$ php -f ./bin/magento cache:flush

バックエンド言語ロケール

バックエンド画面(管理者ページ)の言語表示設定は管理者ユーザーごとに設定します。
バックエンド画面に移動
System > Permission > All Users > 変更する対象ユーザーをクリックします。
“Japanese(Japan)"を選択
次回ログイン後、バックエンド画面が日本語表示になります。

管理者ユーザー言語設定画面イメージ