Magento2 の日本語翻訳を変更する最も簡単な2つの方法

Magento2 日本語翻訳コントリビューターのカズキック2です。

[Magento2 の日本語化拡張 - Japanese Localization](https://marketplace.magento.com/community-engineering-japan-common.html) を有効化したときに、日本語の表現が微妙だなと感じることはないでしょうか。これは元言語である英語の表現をできるだけ再現しようと、意訳をせずに翻訳しているため、だいぶ日本語的には歯がゆい表現になっているためです。

翻訳コントリビューターの中でも元原語に忠実な方がよいのか、もっと大胆に意訳していくべきかの議論もありましたが、翻訳対象文字列が膨大な Magento2 では、意訳をすると表現の統一の難易度が高まるのと、Magento2 は利用者がかんたんに翻訳をカスタマイズできるため、公式提供では直訳として、利用者の必要に応じて編集していただこうという（明言はしていませんが）ポリシーとなっています。

本エントリでは Magento2 翻訳を利用者が自身でカスタマイズする最も簡単な方法として、(1)サイトを見ながら手軽に修正する「インライン翻訳」、(2) 日本語公式拡張の翻訳そのものに新しい翻訳案を提案・投票する、の2つの方法を紹介します。

なお日本語化拡張に誤訳を見つけた場合にも (2) の方法で修正提案が可能です。

## サイトを見ながら手軽に修正する「インライン翻訳」
Magento2 の翻訳管理機能は多岐にわたります。その中で最も簡単なのは「インライン翻訳」機能です。サイトを見ながら手軽に修正する事ができるため、出来上がりを確認しながら翻訳を変更できます。

<img width="1004" alt="スクリーンショット 2019-12-02 21.58.21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/752/750d2150-20b8-4637-c135-bb3ed5f1fdc0.png">

この機能はブラウザ画面から翻訳語のオリジナルを確認しながら即座に反映できるので、試行錯誤にとても便利です。しかし DB に翻訳情報を保持するため、バージョン管理などを行う開発フローには適しません。「翻訳を再利用するのであれば、辞書ファイルに翻訳をすることを推奨します」と公式ドキュメントで書かれている様に、メリット・デメリットを意識して利用しましょう。

※ "To save and reuse translations, we recommend localizing in a dictionary." [Translations overview | Magento 2 Developer Documentation](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/translations/xlate.html)

その他、多くのレイヤーで行える翻訳管理は決まった優先順序で適用されます。最も優先されるのは「インライン翻訳」情報が格納された翻訳データベースの翻訳になります。

1 翻訳データベース
2 テーマの翻訳
3 app/i18n 翻訳パッケージ
4 モジュールの翻訳

### 「インライン翻訳」有効化の手順
##### 1. Magento2 のモードを「Developer」にします
```$ bin/magento deploy:mode:set developer```


##### 2. 管理画面で「インライン翻訳」を有効化する

管理画面サイドバーから設定画面
**「店舗」=> 「設定」=> 「高度な設定」=>「開発者向け」=>「インライン翻訳」**
へ移動する。

設定を変更します
- ストアフロントで有効にする => ユーザー向け画面でインライン翻訳を有効化する
- 管理者ページで有効にする => 管理画面でインライン翻訳を有効化する

<img width="1012" alt="スクリーンショット 2019-12-02 21.51.55.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/752/01e1403c-cffd-7876-73e0-7710d31a54a1.png">

これで「インライン翻訳」が有効になりました。サイト上から翻訳を更新できます。

公式マニュアル：[Translate Inline | Magento Open Source 2.3 User Guide](https://docs.magento.com/m2/ce/user_guide/system/translate-inline.html?_ga=2.102522625.1670877687.1575288925-1220241516.1557878478)

## 日本語公式拡張の翻訳に新しい翻訳案を提案・投票する
もうひとつの方法は、公式コミュニティ製の日本語化拡張そのものの翻訳語を変更する方法です。 Magento2 の各言語の翻訳は、翻訳管理サービスである Crowdin で管理され、日本語化拡張に含まれるローカライゼーション CSV に毎月間隔程度で自動反映されます。

> "Crowdinは、企業がソフトウェアを翻訳するのを支援するローカライズ管理プラットフォームです。この記事では、翻訳者としてプロジェクトのローカライズに貢献する方法に関する情報を見つけることができます。"
[Crowdin Introduction | Crowdin Documentation](https://support.crowdin.com/crowdin-intro/)

英語直訳気味で作ってきた日本語翻訳ですが、よりよい翻訳語を提案することでブラッシュアップしていく貢献が誰でも可能です。Magento2 の翻訳プロジェクトのホームページは以下になります。Crowdin にアカウント登録をすれば翻訳活動に参加できます。

[Magento 2 translations in Crowdin](https://crowdin.com/project/magento-2)

HOME から「日本国旗」画像を選ぶと日本語ローカライゼーションフォルダ構造が見えますので、必要な CSV を選び、新しい翻訳を書き込み、SAVE をすることで翻訳語の提案を行います。複数の提案が存在する場合は他コントリビューターからの投票数によって適用される翻訳が選ばれます。もし投票してくれるコントリビューターが現れない場合は [@kzkiq2nd](https://twitter.com/kzkiq2nd) まで連絡ください。

Magento2 はモジュール単位で翻訳ファイルが分割されています
<img width="1208" alt="スクリーンショット 2019-12-02 21.28.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/752/fdc7432c-65a4-9e71-d5d6-bed6a7a2c401.png">

Magento2 では翻訳変数が利用できるため柔軟な翻訳表現が可能です
<img width="1081" alt="スクリーンショット 2019-12-02 21.29.51.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/752/718f9bc7-cc40-d4ce-4957-b666c3d06169.png">

## 公式ドキュメント関連ページ
- 翻訳機能郡の解説トップ
    - [Translations overview | Magento 2 Developer Documentation](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/translations/xlate.html)
- 言語パッケージ化の方法解説
    - [Translation dictionaries and language packages | Magento 2 Developer Documentation](https://devdocs.magento.com/guides/v2.3/config-guide/cli/config-cli-subcommands-i18n.html)