WordPress4.6へのアップグレード時にプラグインの翻訳が変になった際の対処法

つい先日、WordPress の最新バージョン 4.6 がリリースされたが、アップグレードした際に利用しているプラグインのいくつかにて、テキストが正常に翻訳されなくなるという症状に陥った。私が公開している「Custom DataBase Tables」もその一つだったため、いくつかそれに対してお問合せをいただいた。
そんなわけで、その際の対処方法を紹介しておこうと思う。

結論的に、対処方法は /wp-content/languages/ に格納されている対象の言語ファイルを削除するだけだ。

翻訳がおかしくなったのがプラグインであれば、/wp-content/languages/plugins/ のディレクトリ内に各種プラグイン用の翻訳言語ファイルが格納されている。
例えば、私のプラグイン「Custom DataBase Tables」であれば、該当のディレクトリ配下に「custom-database-tables-ja.po」と「custom-database-tables-ja.mo」が格納されているので、それを削除すれば対処完了だ。
テーマであれば、/wp-content/languages/themes/ の下に翻訳言語ファイルが格納されているはずだ。

どうしてこんなことが起こったのか、WordPress 4.6の更新履歴を確認してみたら、「国際化の改良」という項目があった。
どうやら、バージョン 4.6 からは言語ファイルの読み込み優先順が変更になっていて、/wp-content/languages/内に言語ファイルがあるものはそちらを優先して読み込むように仕様が変更されたようだ。この/wp-content/languages/に言語ファイルが保存されるのがどういうタイミングなのかが不明だが、実際にこのフォルダに入っていた「Custom DataBase Tables」プラグインの言語ファイルは今年の3月のタイムスタンプで、結構古かった。私のプラグインの最新リリースが7月だったので、バージョン的に5つ程古いことになり、その翻訳が反映されてしまうとUIの至るところに翻訳抜けが発生してしまうのもうなずける…。

とにもかくにも、プラグインやテーマの翻訳が変になった場合、まずは/wp-content/languages/の中に古い翻訳ファイルが入っていないか確認して、入っていたら削除しておくのがベストな対処法である。

蛇足だが、どうやら WordPress 4.6 でもWP REST APIが完全実装されていないようで、なんとも歯がゆい。「Custom DataBase Tables」プラグインのWEB API処理をREST API版にリファクタリングしたいのだけど、コアが実装されないとなかなか手が出せないのだよねぇ…。

Leave a Reply

Your email address will not be published.