この画像では、タイトルである「WordPress 6.5で翻訳処理が高速化。裏側に迫る。」という文字列を提示しています。

WordPress 6.5で翻訳処理が高速化。裏側に迫る。

福田拓朗

プライム・ストラテジーの福田です。WordPress 6.5のアップデートでは数々の機能が登場しました。そのうちの一つに翻訳処理の高速化があります。この点について、日本語で掘り下げて紹介します。

WordPressを含む、ソフトウェアの翻訳の仕組み

Webサイトの翻訳には大きく分けて二つの翻訳があります。それは、CMS(WordPress, ソフトウェア)としての翻訳と、Webサイト(コンテンツ)としての翻訳です。今回は、ソフトウェアの翻訳についての記事となります。

最初に、ソフトウェアの翻訳の仕組みについて説明します。一般的に、コンピュータのソフトウェアでは、アメリカ英語以外の言語を表示する場合、多言語対応をするための対照表ファイルを利用した翻訳処理を行います。これはWordPressでも例外ではなく、WordPressにおいて標準の場合、アクセスがあるごとにその対照表ファイルにアクセスし、随時参照することで翻訳を行っています。日本語のような英語ではないWordPressの環境の場合、この翻訳処理に時間がかかってしまうことがあります。

WordPress 6.5は前バージョンより翻訳処理が高速。その理由は?

さて、WordPress 6.5は、アメリカ英語以外の環境においては、前バージョンであるWordPress 6.4に比べ、読込時間が23.5%高速化され、メモリ使用量は41.4%も削減されました。

これには、WordPress 6.5における翻訳の性能が改善されたことが大きく貢献しています。技術的に言うと、gettextというシステムからPHPコードへ翻訳の仕組みを変更したことによって改善されました。この点、少し詳しく説明します。

WordPress 6.4まではgettextを利用していました。ですが、この機能を利用した場合、PHPの実行コード単位でのキャッシュ(OPCacheというものです)が翻訳には利用できません。そこで、WordPress 6.5からは翻訳文をPHPのコードとして読み込めるようにしてOPCacheも活用できるようにすることで、このオーバーヘッドを改善することとしました。

どのようにこの改善策を見つけたのか?

どのようにこのソリューションを発見したのか。それは、翻訳を利用しているWordPress環境でのパフォーマンス低下に気がついたWordPressコア開発チームのメンバーが原因を調べていたところ、gettext(というか、PHPを積極的に利用していないこと)が原因であることがわかったようでした
gettextが原因とわかった結果、彼らがPerformant Translations(旧Ginger MO)プラグインとして後付でPHPファイルベースの翻訳を導入可能な仕組みを2023年の夏~秋頃に作成しました。そして、今回この機能を本体に統合し、全ユーザーが高速化できるようにした次第です。

過去のWordPress翻訳ファイルからの新形式へのマイグレーション方法

さて、この機能を活用するには、運営者や開発者の協力も不可欠となります。というのも、gettext形式からPHP形式へのファイル変換は原則として自動では行われません。ついては、プラグインやテーマの翻訳ファイル(poファイル)があるフォルダの下で

wp i18n make-php .

を実行する必要があります。なお、WP-CLIの2.10.0以上で対応しているため、バージョンがそれ以下の場合WP-CLIのアップデートも忘れずに行ってください。

上記コマンドラインを何かの理由により利用できない場合は、プラグインやテーマのアップデートを待つのが一番安全な選択肢と言えるでしょう。

KUSANAGIとWordPress 6.5による翻訳機能アップデートについて

さて、KUSANAGIでは、今回のコアアップデート前から翻訳キャッシュの機能をAPCuというPHPのキャッシュ機能を活用して提供しており、翻訳機能を利用しているソフトウェアのパフォーマンスを改善しているので、KUSANAGIを利用した場合は、WordPress 6.4以前でも、通常のWordPressページより高速に表示することが可能となっていました。
なお、今回のアップデートによるKUSANAGIのこの翻訳キャッシュ機能への影響は調査中です。

また、KUSANAGIにはbcache(WordPressのページ内容キャッシュ)やfcache(Nginxのページ内容キャッシュ)といった機能があり、これによって、翻訳の高速化以外の手法でもWordPressの動作速度の向上も引き続き行えるようにもなっています。活用を検討してみてはいかがでしょうか。

まとめ

競合CMSへの優位性を失わないようにするためにも、WordPressのコア開発チームも日々機能やセキュリティのみならずパフォーマンスの改善にも力を入れていることがわかりました。また、翻訳の専門機能であるgettextを利用するよりもPHPのコードベースで記述するほうがパフォーマンスが高いのは、新たな知見でありました。KUSANAGI開発チームも新しいアプローチで機能実装を進めてまいります。

<< Azure Container Apps (コンテナー アプリ)を動かしてみるAzure Kubernetes ClusterでWordPressをデプロイしてみる >>

関連記事

Webサイト運用の課題解決事例100選 プレゼント

Webサイト運用の課題を弊社プロダクトで解決したお客様にインタビュー取材を行い、100の事例を108ページに及ぶ事例集としてまとめました。

・100事例のWebサイト運用の課題と解決手法、解決後の直接、間接的効果がわかる

・情報通信、 IT、金融、メディア、官公庁、学校などの業種ごとに事例を確認できる

・特集では1社の事例を3ページに渡り背景からシステム構成まで詳解