1. Magento2.3系以降の新しい日本語エクステンションについて

Magento2を日本語化するの記事では、Composerを使って、二つの日本語エクステンション(日本語ロケール/日本語ローカライズ)をインストールする方法を解説いたしました。
しかし、2019年の最新のMagento2.3.x系からは、Magento2.2.x以前と違う、新しい日本語エクステンションが必要となります。

新しい日本語エクステンションは、Magento Community Engineering からの提供となりますが、ベースとなっているモジュールは、以前と同じようにVeriteworksさんの開発されたものになります。

ご参考
https://principle-works.jp/blog/finally-official-magento-japanese-localize-extension-published-in-marketplace/

新しい日本語エクステンションは、Magento2のEC機能をあらゆる角度から日本語環境に適合させるための、14個のモジュールが同梱された総合パッケージで、カート画面での住所氏名の語順、郵便番号からの自動住所入力、PDF文書での日本語フォント表記、日本円の端数処理など、Magento2のコアに関連する要素も組み込まれています。

特に、カート画面での日本語の住所氏名など、以前は英語順の不自然な配列での表示でしたが、今回の新しいエクステンションでは、コアレベルでのローカライズが進み、日本語での正しい語順に修正されています。

Magento2.3カート画面(日本語)

今回は、この新しい日本語エクステンションのインストール方法について、簡単な説明をいたします。

インストール方法は、

  • Magento Marketplaceにて入手
  • Composerを使う

の二つの方法があり、どちらのケースも無料で提供されています。

2. Magento Marketplaceでの入手とインストール

Magento2.3からの日本語エクステンションは、先日5月8日に、Magento Marketplaceにてリリースされました。

Japanese Localization by Magento Community Engineering
https://marketplace.magento.com/community-engineering-japan-common.html

Magento2.3日本語エクステンション

このMarketplaceで日本語エクステンションを入手するには、Marketplaceにアカウントを作成し、カート画面から購入(無料)の手続きをします。
そして、Magento2の管理画面の System > Tools > Web Setup Wizard > Extension Manager から、購入したエクステンションのインストールを行います。

基本的には、Marketplaceでエクステンションの購入をし、Magentoの管理画面でMarketplaceのアカウントと同期して、そして購入エクステンションを管理画面からインストールという流れになります。

同期をする際に、Public KeyPrivate Key の入力が必要となります。
今回の記事では、この二つのKeyの取得について、簡単に説明したいと思います。

先ず、Magento Marketplaceサイトの、右上の「Sign In」からサインインをしてください。(Magento Marketplaceがはじめての方は、サインイン画面右の「Register」から、画面の案内通りに入力を進め、Marketplaceのアカウントを作成してください。)
そして、サインイン後、以下の画像のように右上のプルダウンを開いて、My Profile をクリックします。

Magento Marketplace

続いて、My Products > Access Keys  をクリックします。

Magento Marketplace

そして、オレンジ色の「Create A New Access Key」ボタンをクリックします。

Magento Marketplace

以下のように、Keyの名前を入力するウィンドウが開きますので、任意の名前(自分の備忘のため)を半角で入力し、「OK」をクリックしてください。

Magento Marketplace

すると、画面が元に戻り、Public Key と Private Key がペアになって作成されています。

Magento Marketplace

(Marketplaceでのキーの入手については、Magento2の使い方Magentoアカウント登録とアクセスキーの取得の記事もご参照ください。)

このKeyを、Magento管理画面のExtension Manager の所定の欄に入力することになるのですが、Extension Managerでの具体的なインストール方法や使い方は、以下の公式ドキュメントをご参照ください。

Marketplaceで購入したエクステンションのインストール方法(公式ドキュメント 英語)
https://docs.magento.com/m2/ce/user_guide/system/web-setup-extension-manager.html

ご注意:
Web Setup Wizardは、Magento2をNginxサーバーでホストしている場合、現在、使用できない(アクセスできない)状況になっています。
また、Magentoサーバーでご紹介しているApache共用サーバーの場合も、特にMagento2.3系以降、メモリ不足等でエラーになってしまうケースが増えているようです。
Setup Wizardは、以前から不安定な動作をすることが多く報告されていて、私自身も(過去のトラウマがあり笑)普段はほとんど使用しておりません。コマンドでの作業に慣れている方は、次のComposerでのインストールを推奨いたします。
Setup Wizard(Extension Manager)の動作について情報がありましたら、コメント欄やフォーラムにて、お使いの環境や設定等をご報告いただけますと幸いです。

3. Composerでインストールをする(推奨)

新しい日本語エクステンションは、Composerでインストールすることもできます。
Composerを使う場合、以下の一行のコマンドでインストールができます。

共用サーバーの場合

Copy to Clipboard

クラウドやVPSの場合

Copy to Clipboard

コマンドでの作業については、以前のMagento2+日本語をComposerでインストールの動画をご覧いただけますと、イメージをつかんで頂きやすいと思います。
実際、日本語エクステンションのコマンドが変更になっているだけで、他はすべて同じ作業になります。

Magento2本体と日本語エクステンションを同時にComposerでインストールする際は、以下のようなコマンドラインでの作業になります。
*以下のコマンド例は、root権限のあるクラウド/VPS環境で一般ユーザーを作成した場合になります。共用サーバーの場合は、適宜sudo→php、composer→composer.pharに置き換えてください。

Composerのインストール
curl -sS https://getcomposer.org/installer | php

Magento2のダウンロード
sudo composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition

Magento2ファイル群の配置確認と移動(FTP等で)

日本語エクステンションのダウンロード
sudo composer require community-engineering/japan-common

Magento2用のデータベース作成

Magento2のインストール(ブラウザから、もしくは以下コマンド例)
sudo bin/magento setup:install --base-url=https://yourdomain.com/ --db-host=localhost --db-name=test_data --db-user=testuser --db-password=testpassword --admin-firstname=Taro --admin-lastname=Yamada --admin-email=test@yourdomain.com --admin-user=demo123 --admin-password=demo123 --backend-frontname=adminURL123 --language=ja_JP --currency=JPY --timezone=Asia/Tokyo --use-rewrites=1
*青字箇所は環境により置き換えてください。

はじめてMagentoのレポジトリからファイルをダウンロードする際には、Authentication(認証)が求められます。
前項でご説明をした、Magento Marketplaceにて所得したKeyを、この認証でも利用することができます。

Magentoレポジトリの認証

Composerでダウンロードを進めようとすると、

Authentication required (repo.magento.com):

という文言が表示され、Usernamae の入力を求められます。
この Username には、Marketplaceで取得した Public Key をコピペで入力し、[Enter]を押してください。

次に、Password の入力を求められます。
この Password には、Marketplaceで取得した Private Key をコピペで入力してください。
注意するのは、この Password の入力行では、自分でコピペした文字列もカーソルも画面上に表示されず、ブランクのままになっていることです。画面がフリーズしてしまったような感覚になりますが、しかし、確実にKeyをペーストをしたら、そのまま[Enter]を押してください。

すると、

Do you want to store credentials … ? [Yn]

と聞かれますので、「Y」(Yes)を入力し、[Enter]を押してください。
これで、Composerでのダウンロードが進みます。

インストールされた日本語エクステンションのファイルは、以下の画像のように、Magento2ルート/vendor/community-engineering 以下に配置されています。

14個のモジュール名は、

CommunityEngineering_ConfigurablePdfFont
CommunityEngineering_CurrencyPrecision
CommunityEngineering_FontIpa
CommunityEngineering_FontSourceHanSansJapanese
CommunityEngineering_JapaneseAddress
CommunityEngineering_JapaneseDefaultCmsPages
CommunityEngineering_JapaneseDefaultConfig
CommunityEngineering_JapaneseName
CommunityEngineering_JapanesePostalCode
CommunityEngineering_JapaneseRegion
CommunityEngineering_JapaneseStoreAddress
CommunityEngineering_JapaneseUrlRewrite
CommunityEngineering_JapaneseYenFormatting
CommunityEngineering_Kuromoji

となります。

Magento2日本語エクステンションの配置

メインとなる日本語翻訳のCSVファイルは、vendor/community-engineering/language-ja_jp/ja_JP.csv に配置されていますが、各モジュール内に i18n フォルダがある場合は、その中にも ja_JP.csv ファイルがあります。

また、新しい日本語エクステンションは、現在の1.0.0バージョンでは、日本語のシングルストア専用になっていて、多言語でのマルチストアの運用はできない仕様になっています。(今後、マルチストア対応のバージョンが開発され、一般リリースされる予定です。)

そのため、Magento2管理画面での言語指定がロックされ、別言語へ変更できないようになっています。

すでにインストール済みのMagento2.3.xに、後から日本語エクステンションを単体でインストールする際には、Magento2管理画面の STORES > Configration > General > Local Options > Locale にて、事前に、言語を「Japanese」に変更しておくようにしてください。

Localeが「English」のままで日本語エクステンションをインストールした場合には、管理画面からは言語の変更ができなくなっているので、以下のコマンドにて言語変更を実行してください。

共用サーバーの場合

Copy to Clipboard

クラウド/VPSの場合

Copy to Clipboard

4. Magento2.2.xからMagento2.3.xへのアップデートについて

すでにMagento2.2.x系以下で日本語ストアを構築、運営されている方は、この新しい日本語エクステンションをインストールするには、Magento2.3.xへのアップデートを行う必要があります。
逆に言うと、Magento2.3.xへアップデートするには、日本語エクステンションを一新することが必須となります。

2.2.x→2.3.xへのアップデートにおいては、Magentoアップデートのページにも書いているのですが、通常のマイナーアップデートと同じ作業ではエラーになり、アップデートに失敗してしまいます。

2.3系から、PHP7.2のサポートが追加され、PHP7.0のサポートが外れました。この関係で、Magento2にインストールしているサードパーティーのエクステンションの多くが、アップデート時に依存性絡みのPHPバージョンエラーになることが報告されています。

ご参考
https://firebearstudio.com/blog/how-to-upgrade-to-magento-2-3-update-error-fixes.html

そのため、2.3へアップデートする直前に、すべてのサードパーティのエクステンション/モジュールを、無効化、削除することが推奨されます。
通常、完璧なアンインストールを行わない限り、既存データはデータベースにそのまま残りますので、2.3へのアップデート後、エクステンション/モジュールを再インストール、再有効化すれば、それまで該当エクステンションで構築していた内容を復元することができます。

日本語エクステンションに関して言えば、2.2までの従来の日本語ロケール/日本語ローカライズは必要なくなりますので、2.3へのアップデート前に、以下の手順で無効化、削除を行います。
(*日本語翻訳を個別で編集している場合は、 ja_JP.csv ファイルをバックアップしてください。)

共用サーバーの場合

Copy to Clipboard
Copy to Clipboard
Copy to Clipboard

クラウド/VPSの場合

Copy to Clipboard
Copy to Clipboard
Copy to Clipboard

上記のように、Composerでインストールをしたエクステンション/モジュールは、Composerコマンドにより削除(remove)します。

一方、FTPでアップロードし、マニュアルインストールをしたエクステンションやテーマは、無効化(disable)のコマンドの後、やはりFTPソフトにて手作業で該当ファイルを削除するか、rmコマンドにて削除をします。

例えば、Magentoテーマでご紹介しているUltimoテーマを削除するには、以下のコマンドを実行します。
(*テーマをカスタマイズしている場合は、必ず個別に編集ファイルをバックアップしてください。)

共用サーバーの場合

Copy to Clipboard
Copy to Clipboard

クラウド/VPSの場合

Copy to Clipboard
Copy to Clipboard

サードパーティーのエクステンションやテーマを削除した後、Magento2.2から2.3へのアップデートは、以下のようなコマンドラインでの作業になります。
*以下のコマンド例は、root権限のあるクラウド/VPS環境でユーザーを作成した場合になります。共用サーバーの場合は、適宜sudo→php、composer→composer.pharに置き換えてください。

Magento2のバージョン特定
sudo composer require magento/product-community-edition=2.3.1 --no-update

追加パッケージの特定
sudo composer require --dev phpunit/phpunit:~6.2.0 friendsofphp/php-cs-fixer:~2.10.1 lusitanian/oauth:~0.8.10 pdepend/pdepend:2.5.2 sebastian/phpcpd:~3.0.0 squizlabs/php_codesniffer:3.2.2 --no-update

composer.jsonファイルの変更
sudo nano composer.json
(autoloadの段を見つけて、最終箇所に以下のように追記変更をします。)

"autoload": {
"psr-4": {
"Magento\\Framework\\": "lib/internal/Magento/Framework/",
"Magento\\Setup\\": "setup/src/Magento/Setup/",
"Magento\\": "app/code/Magento/",
"Zend\\Mvc\\Controller\\": "setup/src/Zend/Mvc/Controller/"
},
...
}

アップデート実行
sudo composer update

新しいバージョンファイルのダウンロードができたら、削除したエクステンションやテーマを、Composerでダウンロード、もしくはFTPにてアップロードし、再有効化をします。
そして、

sudo bin/magento setup:upgrade
sudo bin/magento setup:di:compile

にて、Magento2のセットアップを行い、すべてのキャッシュをクリアしてください。

この一連のアップデート作業は、Magento2.2系も2.3系もどちらもサポートをしている、PHP7.1にて行うようにしてください。2.3へのアップデート完了後、PHP7.2への切り換えが可能となります。
また、サードパーティー製品の削除と再インストールについては、事前に開発者に問い合わせをし、開発者からの指示やアドバイスを優先するようにしてください。

Magento2のアップデート(特に2.3へのアップデート)は煩瑣で、なかなか一度ではうまく成功しないかもしれません。
エラーメッセージから原因を特定し、サードパーティ開発元からの情報もよく吟味しながら、テスト環境でじっくり時間をかけてトライする必要があると思います。

5. 新しい日本語エクステンションの注意点

先述したように、Magento2.3以降の新しい日本語エクステンションは、2019年5月現在、まだ日本語のシングルストアのみに対応となっています。
そのため、Magento2.2.xを、日本語・日本円を含めた多言語・多通貨のマルチストア環境で構築・運営をしている場合は、Magento2.3へアップデートをするのは時期尚早かと思われます。

新しい日本語エクステンションは、GitHubにて現在進行形で開発されています。
GitHub: Magento2 Japan  https://github.com/magento/magento2-jp

Roadmapを見ると、大きく3段階でのリリースが予定されていて、先日の5月8日に、その第1段階のリリースがされました。
第2段階にて、多言語のマルチストア環境での対応が可能となる予定なので、具体的な時期がいつになるかは予想が難しいのですが、マルチストア環境の場合は、第2段階のリリースまで待つのが無難と思われます。

また、日本語の翻訳システムもCrowdinというプラットフォームが導入されていて、翻訳の追加や改善に、誰でも参加できるようになっています。(ご興味のある方は、Veriteworksさんのサイトをご参考ください。)

新しい日本語エクステンションは、私もまだ本番環境での作り込みを行なっておりません。
今後、もしまたなにか注意点が分かりましたら、当記事にて追加更新をしたいと思います。