WPML

WPML 3.5のベータ版の準備が整いました。このリリースには、機能とパフォーマンスの両面で文字列翻訳への重要な改善が含まれています。

WPMLを使用するほぼすべてのサイトが文字列翻訳を使用しています。そのため、WPMLの文字列翻訳を改善することは、当社の最優先事項の1つです。今回のWPMLのリリースは、ほぼ文字列翻訳の改善のみに専念しています。

より高速で無駄のない文字列翻訳


文字列を翻訳するために、WPMLはデータベースから翻訳を読み込む必要があります。当社ではさまざまな読み込み手法をテストしてきましたが、WPML 3.5でのアプローチが間違いなく最善であると考えています。

以前のリリースでは、以下のことを試みました。

  • 必要なタイミングでのみ翻訳を読み込む
  • コンテキストごとにすべての文字列を事前読み込みする
  • データベースからすべての文字列を事前読み込みする

これらのアプローチにはそれぞれ長所と短所がありました。問題は、いずれかのアプローチの恩恵を受けるサイトがある一方で、別のサイトでは悪影響が生じることでした。

WPML 3.5では、文字列翻訳の事前読み込みに新しいアプローチを採用しています。追加のテーブルを保持し、各ページでどの文字列が必要かをWPMLに伝えます。そして、どのコンテキストに属しているかに関わらず、そのページに必要な文字列だけを正確に事前読み込みします。この明確な利点は、事前読み込みされる文字列が少なくなり、ページのレンダリング中に文字列を読み込む必要がないことです。その結果、メモリ消費量とCPU使用率の両方が大幅に低下します。この新しいアプローチの欠点は、どの文字列がどこで使用されているかを追跡するためのわずかな新しいPHPコードが必要になることです。しかし、この追加コードは、専用に開発されたDBアクセスとキャッシュにより非常に高速に動作します。

期待できるパフォーマンスの向上は、さまざまな要因によって異なります。

  • サイト内の文字列数 – 文字列が多いほど、得られる恩恵は大きくなります(相対的に、事前読み込みされる文字列が少なくなるため)。
  • サーバーのPHPバージョン – PHP 7はPHP 5.6よりもはるかに効率的です。まだPHP 5.xをご利用の場合はより顕著なパフォーマンス向上を得られますが、PHP 7でもその効果を実感できます。
  • 実行中の他のプラグインの数、コンテンツの量、テーマなど – 当然ながら、サイトに他の遅いコードがある場合、文字列翻訳の改善はそれほど顕著にはなりません。

当社のWPML.orgウェブサイトでは、以下のようなパフォーマンス向上が見られました。

PHPバージョンページメモリ消費量の削減CPU使用率の削減
PHP 5.6 ホーム60%41%
管理ダッシュボード41%33%
PHP 7 ホーム50%16%
管理ダッシュボード33%15%

WPML 3.5のもう1つの重要な改善点は、文字列内のリンクを(自動的に)翻訳できる機能です。これが何を意味し、なぜ必要なのでしょうか。

当社では「文字列」をさまざまな用途に使用しています。たとえば、テーマがホームページの「リード」テキストを「オプション」に保存している場合、WPMLはそれに文字列翻訳を使用します。これまでは、URLを含む文字列を追跡し、翻訳されたコンテンツに合わせて手動で調整する必要がありました。多くの文字列にリンクが含まれている場合、これは非常に面倒な作業になる可能性がありました。

現在、WPMLは「投稿」(投稿、ページ、カスタムタイプ)内のリンクを処理するのと同じように、文字列翻訳内のリンクを処理します。リンクを含む文字列を翻訳すると、そのリンクは翻訳されたコンテンツを指すように自動的に調整されます。これが当社のToolset Layoutsプラグインでどのように機能するかについては、別のブログ記事で紹介します。

8月2日のアップデート

管理画面で大幅な時間の浪費となっている別の原因を発見しました。これは些細なことであり、もっと前に対応しておくべきものでした。WordPressの管理画面には「WPMLウィジェット」がありますが、おそらくもう誰も必要としていないでしょう。このウィジェットは、DB内の多くの場所からコンテンツを取得するだけでなく、wpml.orgウェブサイトから最近のブログ記事も取得します。これを削除することで、多数のDB呼び出しや、遅延の原因となり得る外部呼び出しを排除できます。

当社ではこのウィジェットの対応(削除)を行い、サイトの動作を遅くしないよう、すべての外部呼び出しを見直しています。

ダウンロードと試用


WPML 3.5は現在QA段階に入っています。文字列翻訳への変更はすでに十分にテストされていますが、本番バージョンとしてリリースする前にテストすべきことがまだたくさんあります。

この次期バージョンに関するフィードバックをお待ちしております。サイトに文字列翻訳に関連するパフォーマンスの問題がある場合、このバージョンは最適です。

これはベータ版ですので、開発サイトでのみお試しください(本番サイトでは使用しないでください)。

このベータ版は主に文字列翻訳の改善を中心としているため、「Multilingual CMS」アカウントをお持ちの方のみご利用いただけます。

WPMLアカウントにログインし、「ダウンロード」をクリックします。一番下までスクロールして、CMS Beta Packageをダウンロードします。解凍し、使用しているすべてのWPMLコンポーネントをWordPressにアップロードしてください。

フィードバック


このバージョンの動作について、ここにコメントを残してお知らせください。問題が発生した場合は、WPMLサポートフォーラムで新しいスレッドを開始し、簡単な説明とそのスレッドへのリンクを添えてここにコメントを残してください。

皆様からのフィードバック、ご質問、アイデア、ご提案をお待ちしております。

この記事が役に立ちましたか?この記事を共有: