目次
Proxyベースのウェブサイト翻訳:仕組み、活用場面、そして代替手段
重要なポイント
- Proxyベースの翻訳はHTTPリクエストをインターセプトすることで、翻訳されたウェブサイトバージョンを提供します — コード変更は不要です
- Proxyは迅速にセットアップできますが(多くの場合、当日中に)、パフォーマンス、SEOコントロール、長期的なメンテナンス性においてトレードオフが生じます
- コードベースのi18n(react-intl、next-intl、vue-i18nなどのライブラリを使用)は翻訳に対する完全なコントロールを提供しますが、開発努力が必要です
- Proxy ソリューションは、市場投入速度が最重要のマーケティングサイトやコンテンツ重視のページに適しています
- 複雑なUI インタラクションを持つソフトウェア製品には、コードベースのi18nが通常、より良いユーザーエクスペリエンスとメンテナンス性を提供します
Proxyベース翻訳の仕組み
翻訳Proxyはユーザーとウェブサーバーの間に位置します。ユーザーが特定の言語でページをリクエストすると、Proxyは以下を実行します:
- サーバーから元のページを取得します(ソース言語で)
- HTML内の翻訳可能なテキスト要素を特定します
- ソーステキストをデータベースからの翻訳に置き換えます
- 翻訳されたページをユーザーに提供します
ユーザー(フランス語)→ Proxy → サーバー(英語)
↓
Proxyが英語テキストを
フランス語翻訳に置き換える
↓
ユーザーはフランス語ページを受け取る
Proxyは通常、URLルーティングも処理します — サブドメイン(fr.example.com)、サブディレクトリ(example.com/fr/)、または別のドメインで翻訳済みページを提供します。
Proxyベース翻訳の利点
コード変更が不要
主な利点:開発チームがコードベースを国際化する必要がありません。Proxyが翻訳を外部で処理します。これは特に以下の場合に価値があります:
- コードベースがi18nを考慮して構築されておらず、後付けが費用がかかる場合
- サイトを迅速に翻訳する必要がある場合(数週間ではなく数日で)
- サイトが制御できないプラットフォーム上に構築されている場合(例:ホスト型CMS)
市場投入の迅速化
Proxy ソリューションは数日以内にサイトの翻訳済みバージョンを公開できます。Proxyがサイトをクロールし、翻訳可能なコンテンツを特定して翻訳のために提示します。開発スプリント、コードレビュー、デプロイメントは不要です。
あらゆるテックスタックで機能
ProxyはHTTPレベルで動作するため、サイトがReact、WordPress、Shopify、または静的HTMLで構築されているかどうかに関わらず機能します。Proxyはソースコードではなく、レンダリングされたHTML出力を参照します。
制限とトレードオフ
パフォーマンスへの影響
すべてのページリクエストは追加のネットワークホップ(Proxy)を経由します。これにより遅延が増加します:
- 初期ロード: Proxyはオリジンサーバーからページを取得し、処理して翻訳済みバージョンを提供する必要があります。ページの複雑さとProxy の場所によっては、100〜500 msが追加される場合があります。
- キャッシング: Proxyは積極的なキャッシングでこれを軽減しますが、ソースコンテンツが変更された場合のキャッシュ無効化は困難です。
- 動的コンテンツ: AJAXで読み込まれたコンテンツ、シングルページアプリケーションのナビゲーション、クライアントサイドレンダリングはProxyにインターセプトされない場合があり、翻訳されていないコンテンツが一瞬表示される可能性があります。
SEOコントロール
Proxyベースの翻訳はページの翻訳済みバージョンを作成しますが、以下についてのコントロールが少なくなります:
- hreflangタグ: Proxyがこれらを生成しますが、HTMLを直接コントロールしない場合、hreflangの問題をデバッグするのは困難です
- Canonical URL: 言語バージョン間で適切なcanonicalタグを確保するにはProxy の設定が必要です
- メタデータ: メタタイトル、説明、Open Graphタグの翻訳はProxyのコンテンツ検出能力に依存します
- ページ速度: 追加のProxyホップはCore Web Vitalsスコアに影響する可能性があり、検索ランキングに影響します
コンテンツ検出の制限
ProxyはHTMLを解析して翻訳可能なコンテンツを特定します。以下の点で苦労する可能性があります:
- 画像内テキスト: 埋め込まれたテキストには別途翻訳と画像の差し替えが必要です
- JavaScript内テキスト: クライアントサイドでレンダリングされた文字列はProxyから見えない場合があります
- 動的コンテンツ: 初期ページロード後にAJAXまたはWebSocket経由で読み込まれるコンテンツ
- 複雑なUIコンポーネント: 初期HTMLに含まれていないTooltip、モーダル、ドロップダウンメニュー
- 構造化データ: JSON-LDやその他のメタデータ形式が検出されない場合があります
ベンダーロックイン
翻訳済みコンテンツはProxy ベンダーのシステムに存在します。プロバイダーを変更するかコードベースのi18nに移行する場合、翻訳の移行にはエクスポート/インポートが必要で、再フォーマットが必要になる場合があります。
長期コスト
Proxy サービスは通常、トラフィック量と言語数に基づいて月額料金を請求します。多くの言語を持つ高トラフィックサイトでは、継続的なコストがコードベースのi18nを実装する一回限りの投資を上回る可能性があります。
Proxyベース翻訳を使うべき場合
適している場合
- マーケティングウェブサイト: 細かいコントロールよりも市場投入速度が重要なコンテンツ重視のサイト
- レガシーアプリケーション: 国際化が困難または高コストのコードベース
- 概念実証: 完全なi18nへの投資前に新しい市場が実行可能かどうかをテストする場合
- プラットフォームホスト型サイト: ソースコードを変更できないShopify、WordPress.comなどのホスト型プラットフォーム上のサイト
- 一時的なキャンペーン: 短い期間のランディングページやキャンペーンサイト
適していない場合
- SaaS製品: 動的UI、リアルタイム更新、ユーザー生成コンテンツを持つ複雑なウェブアプリケーション
- モバイルアプリケーション: ProxyはネイティブまたはハイブリッドモバイルAppsでは機能しません
- 高パフォーマンス要件: 遅延のすべてのミリ秒が重要なサイト
- 完全なi18nニーズ: ロケール対応のフォーマット(日付、数字、通貨)、複数形処理、単純なテキスト翻訳を超えたRTLサポートが必要なアプリケーション
コードベースi18nを代替手段として
コードベースの国際化は、i18nライブラリを使用してアプリケーションに直接翻訳を統合します:
| 側面 | Proxyベース | コードベース |
|---|---|---|
| セットアップ時間 | 時間〜日 | 日〜週 |
| 必要なコード変更 | なし | 大規模(文字列の外部化) |
| パフォーマンス | 追加ネットワークホップ | オーバーヘッドなし(翻訳をバンドル) |
| 動的コンテンツ | クライアントサイドコンテンツを見逃す可能性 | 完全なカバレッジ |
| SEOコントロール | 限定的 | 完全なコントロール |
| ロケールフォーマット | 基本的なテキスト置換 | 完全(日付、数字、複数形) |
| 長期コスト | 毎月の定期料金 | 一回限りの開発コスト |
| ベンダー依存 | 高(ベンダーシステムにコンテンツ) | 低(リポジトリに翻訳) |
人気のコードベースライブラリ
- React: react-intl、next-intl、better-i18n
- Vue: vue-i18n、nuxt-i18n
- Angular: @angular/localize、ngx-translate
- Svelte: svelte-i18n
- 汎用: i18next(ほとんどのフレームワークで動作)
ハイブリッドアプローチ
いくつかのチームは両方のアプローチを使用します:
- マーケティングページにProxy: マーケティングコンテンツ、ブログ記事、ランディングページの迅速な翻訳
- アプリケーションにコードベース: 製品のコアUIに対する完全なi18nコントロール
これはマーケティングサイトとアプリケーションが別々のデプロイメントである場合に機能します。マーケティングと製品が同じコードベースを共有するシングルページアプリケーションでは、ハイブリッドアプローチは複雑さを増します。
FAQ
Proxyはシングルページアプリケーション(SPA)を翻訳できますか?
部分的には可能です。ProxyはサーバーサイドレンダリングされたHTMLで最も効果的に機能します。クライアントサイドでコンテンツをレンダリングするSPAの場合、Proxyは初期HTMLシェルのみを翻訳する可能性があります。ページロード後にJavaScript経由で読み込まれたコンテンツはインターセプトされない場合があります。一部のProxy サービスはクライアントサイドコンテンツを処理するためにJavaScriptスニペット注入を提供していますが、これは複雑さを増し、パフォーマンスに影響する可能性があります。
Proxyベース翻訳はコンテンツの更新をどのように処理しますか?
ほとんどのProxy サービスはコンテンツの変更を検出するために定期的にサイトをクロールします。新しいまたは変更されたコンテンツは翻訳のためにフラグが立てられます。コンテンツ変更から翻訳済みバージョンが利用可能になるまでの遅延は、クロール頻度と翻訳のターンアラウンドに依存します。これは翻訳の更新がコードとともにデプロイされるコードベースのi18nより反応が遅いです。
Proxyベース翻訳はSEOに有効ですか?
Proxy が正しく設定されている場合はSEOで機能します:適切なhreflangタグ、翻訳されたメタタグ、クリーンなURL構造、適切なパフォーマンス。ただし、コードベースのi18nよりもコントロールが少なく、ProxyはあなたとSearch Engineクローラーの間に位置するため、SEOの問題をデバッグするのが困難です。SEOが重要なサイトでは、コードベースのi18nがより多くのコントロールと透明性を提供します。