WooCommerceで日本語訳の修正・変更が反映されない問題への対処メモ

概略

WooCommerceの最近のバージョンアップ後、私の環境では、「woocommerce-ja.mo」ファイルから行っている日本語訳の変更が、本体や自動送信メールなどに反映されなくなりました。このため、せっかく表現を変更したカート等の文言や、「処理中」「完了」といった通知メールの冒頭が、「注文の処理が完了しました」など、初期設定の翻訳(英語の忠実な訳文)に戻ってしまいます。

当サイトでは、これまで、「woocommerce-ja.mo」「woocommerce-ja.po」ファイルを編集し、サーバー上のWordPressの翻訳ディレクトリ(wp-content>languages>woocommerce)に保存しておく方法を採用してきました。しかし、今のところ、この方法では翻訳文を変更することができなくなっているようです。

この問題を解決するためには、翻訳ディレクトリ(wp-content>languages)の「plugins」内にある翻訳ファイル「woocommerce-ja.l10n.php」内の日本語訳が「.mo」等よりも優先されていることを踏まえ、このファイルを編集して対処する必要がありました。

これは、WordPress6.5以降から利用可能になった翻訳ファイル「テキストドメインーロケール.l10n.php」が、WooCommerceでも利用され、「.l10n.php」ファイルが「.mo」ファイルよりも優先的に読み込まれることが原因となって発生している問題だと思われます。

本件に関し、現時点ではウェブ上の情報量が少ないように見えますので、備忘録としてこの記事を書き残しておくことにしました。あくまで緊急的な措置であり、情報の正確性や今後のバージョンアップ等への対処は保証できませんので、以下の点にご注意ください。

本記事の内容は、あくまで当方の自己責任に基づいて実施したものであり、本情報のご利用・転用に伴う損害等に対する責任を学而図書は一切負いませんのでご注意ください。免責事項の詳細はこちらでご確認いただけます。

自動送信メールなどの日本語訳を変更する方法(従来)

WooCommerceは安価にECサイトが構築できる非常にありがたいプラグインですが、海外仕様のため、注文確認メールの文章も(元の英語が)非常に淡泊です。

これまで私は、この文面の日本語翻訳を変更するために、「woocommerce-ja.mo」「woocommerce-ja.po」ファイルを編集する方法を採用してきました。この方法は、以下の記事など数件のブログを参照させていただきながら実施したものです。

WordPress上での「.mo」「.po」ファイルの役割については、以下の記事がたいへん参考になります。

ところが最近、この2つのファイルを変更しても、WooCommerce本体や、自動送信されるメールに、独自の日本語訳が反映されていないことに気づきました。

結論として、このトラブルの原因は、WordPress6.5以降から利用可能になった翻訳ファイル「テキストドメイン-ロケール.l10n.php」が、WooCommerceでも優先して読み込まれていることではないかと思われます(おそらく……)。このPHPファイルについては、以下の記事が非常に参考になりました。

自動送信メールなどの日本語訳を変更する方法(応急措置)

現状では、Wordpressの翻訳ディレクトリ(wp-content>languages)の「plugins」内にある「woocommerce-ja.l10n.php」が、「.mo」ファイルよりも優先して読み込まれているようです。そこで、とりあえず、この「.l10n.php」ファイルを編集して対処してみました。

まず、PHPファイルの編集が安全に行えるテキストエディタで「woocommerce-ja.l10n.php」を開き、修正したい文面を検索します。その上で、「’ ‘」(フォントの関係で正確に表示されませんが、半角シングルクォーテーション)で囲まれた日本語訳を修正します。

‘We have finished processing your order.’=>’注文の処理が完了しました。’,

‘We have finished processing your order.’=>’ご注文いただき誠にありがとうございます。商品の発送準備が完了いたしました。’,

そして、修正を終えた「woocommerce-ja.l10n.php」は、元のディレクトリに上書き保存します(変更前ファイルのバックアップは必須ですのでご注意ください)。これで、修正後の日本語訳がWooCommerceに反映されるはずです。

ただ、いままで可能だった「wp-content>languages」内に「woocommerce」ディレクトリを新たに作成し、この中に保存する(WooCommerceがバージョンアップしても同じファイルのまま残るので、ずっと使い続けられる)方法は、もう使えないようでした(もしかしたら、何か方法があるのかもしれませんが)。……ということは、公式の翻訳ファイルが更新されるごとに、「.l10.php」を上書きしないといけない、ということになります。

追記WooCommerce本体のバージョンアップとは異なるタイミングで、.jsonと.l10n.phpファイルが更新されることがあり、この対処方法は安定性に欠けています。自動更新のたびに翻訳が元に戻ってしまうので、いつ変更した部分が無効になるのか、ほとんど予測がつきません。かといって、翻訳のPHPファイルを読み込まない設定をテーマに加えてしまうのも、先々を考えれば恐ろしいという気がします。

職人工房さまで紹介されている、フックを使ってfunction.phpから翻訳を書き換える方法に切り替えるべきかもしれませんが、まだ試せていません。フックを使う方法も含め、本件に関して新しい情報が出ているようでしたら、そちらの方法をお試しください。

いずれにせよ、このPHPファイルをテキストエディタで直接編集すれば、とりあえず翻訳の変更が可能なことだけは確認できました。ただ、この記事の内容は取り急ぎの対処(かつ自分用の備忘録)のため、WooCommerceが今後も、あるいは他の機能面でも問題なく動作することはまったく保証できません。重ねてのお願いになりますが、当記事の情報を参照される際は、あくまで自己責任でご利用ください。

笠原 正大

笠原 正大

学而図書 代表

関連記事