文字列を翻訳する全く新しい方法を備えたWPML 4.3をリリースしました。文字列翻訳の管理画面の見た目は同じですが、動作が異なります。データベースから翻訳を読み込む代わりに、.moファイルを生成して読み込みます。これにより、文字列翻訳におけるデータベースの使用量が大幅に軽減されます。
文字列翻訳を書き換えた理由
以前のバージョンの文字列翻訳は、データベースから文字列を読み込み、.moファイルの読み込みを回避しようとしていました。大規模なWordPressプラグインの一部には、プラグイン内のあらゆるテキストを翻訳する巨大な.moファイルが付属しています。たとえば、WooCommerceの.moファイルには8,000を超える文字列が含まれています。他の大規模なプラグインも同様の文字列数を持っています。
サイトを英語で実行している場合、WordPressはこれらの.moファイルを読み込みません。しかし、他の言語(多言語サイトではなく、単一の言語)でサイトを実行している場合、WordPressはこれらの.moファイルをすべて読み込みます。使用しているサーバーにもよりますが、これらのファイルの読み込みには100msから1秒以上かかります。これらの.moファイルは、プラグインが実行されるすべてのページ(通常はサイトのすべてのページ)で読み込まれます。
WPML 4.3まで、このメカニズムの最適化を試みてきました。WPMLには、テーマやプラグインが.moファイルを読み込むのを防ぐオプションがあり、デフォルトで有効になっていました。代わりに、各ページでどの文字列が必要かを確認し、これらの特定の文字列をデータベースから読み込んでいました。
このメカニズムは概ねうまく機能していましたが、時には裏目に出ることもありました。プラグインがページを読み込むたびに多数の文字列にアクセスする場合、WPMLはプラグインに独自の.moファイルを読み込ませる代わりに、データベースから膨大な文字列のリストを読み込んでいました。
一部のプラグインが時間とともに肥大化するにつれて、この最適化メカニズムの効率は徐々に低下していきました。
WPML 4.3では、アプローチを変更する時期だと判断しました。.moファイルのブロックを停止し、データベースからの文字列の読み込みも停止しました。現在、WPMLは他のプラグインやテーマの翻訳時間の最適化を試みることはなく、自身の文字列のみを最適化します。
サイトの読み込み時間への影響
状況によります。これまでサイトが高速であった場合(WPMLを使用しているサイトの大部分が該当します)、速度に大きな変化を感じることはありません。たとえば、wpml.orgでは、ほとんどのページが少し速くなり、一部のページでは読み込みに少し時間がかかるようになっています。
現在、一部のページの読み込みに少し時間がかかる理由は、巨大な.moファイルを読み込んでいる他のプラグインが存在するためです。文字列翻訳の最適化による速度の向上は、他のプラグインの.moファイルの読み込み時間によって相殺されます。
しかし、これらの変動は非常に小さく、高度なプロファイリングツールでのみ測定できる程度です。これまで高速に動作していたウェブサイトは、一般的にWPML 4.3でも引き続き高速に動作します。
読み込み時間の遅さに悩まされていた一部のウェブサイトは、はるかに速く読み込まれるようになります。WPML 4.3以前は、データベースから何万もの文字列を読み込む必要があるウェブサイトがありました。これによりデータベースに大きな負荷がかかり、大量のRAMを消費してページの読み込み時間が長くなっていました。これらのサイトでは、パフォーマンスが非常に大きく改善されます。
今後のさらなるパフォーマンス最適化
はい。文字列翻訳に起因する主要なパフォーマンスの問題を取り除いたため、最適化の機会がさらに増えます。
他のプラグインやテーマの開発者と協力して取り組む必要がある問題が見つかると予想しています。プラグインやテーマが読み込む文字列が少ないほど、パフォーマンスは最も向上します。他のほとんどのプラグインやテーマの開発者は喜んで協力してくれますし、今後発生するほぼすべてのパフォーマンスの問題を解決できると確信しています。最適化のプロセスはほぼ常に同じです。
- 巨大な.moファイルをいくつかの小さなファイルに分割
- 適切なページでの適切なファイルの読み込み
基本的な分割は、管理画面で使用される文字列とフロントエンドに表示される文字列の間で行われます。さらに深い最適化では、ページの種類に応じてフロントエンドの文字列をさらに分割します。たとえば、eコマースサイトでは、チェックアウトプロセスで使用される文字列をすべてのページで読み込む必要はありません。
もちろん、WPML自体に最適化の機会がある場合は、すぐに対応します。
更新、測定、および報告
WPML 4.3は現在展開中です。1〜2週間かけて徐々にリリースしています。サイトがまだこの更新を受け取っていない場合は、数日お待ちいただければ更新が表示されます。順番をスキップしてこの更新をすぐに取得するには、プラグイン –> 新規追加ページに移動し、商用タブをクリックして更新を確認ボタンを使用します。
サイトのいずれかのページの読み込みに時間がかかると感じる場合は、Query Monitorプラグインをインストールすることをお勧めします(Query Monitorを使用してパフォーマンスの問題を分析する方法に関するチュートリアルに従ってください)。WPML 4.3ではQuery Monitorとの重大な互換性の問題を修正したため、表示されるレポートはWPML 4.3より前のバージョンでは役に立たないことに注意してください。
読み込みレポートでWPMLの呼び出しが目立っているかどうかを確認してください。その場合は、WPMLテクニカルサポートまでご報告ください。類似していると思われるスレッドを見つけた場合でも、ご自身のスレッドを開始してください。サイトへのアクセスが必要になるため、各サイトに個別に取り組む方が適切です。
もちろん、パフォーマンスに関する一般的なご報告も大歓迎です(改善の報告も同様に役立ちます🙂)。こちらにコメントを残していただければ、返信いたします。

