マークアップを保持するHTML翻訳。
タグはタグのまま。属性は属性のまま。クラス名、href値、データ属性は一切変更されません。ユーザーが実際に読む可視テキストのみが翻訳されます。
壊れたマークアップは翻訳なしより悪い。
標準の翻訳APIにHTMLを送るのはリスクがあります。タグが部分的に翻訳され、属性値が破損し、変更すべきでないクラス名が変わってしまいます。出力はプレーンテキストでは正しく見えてもブラウザで壊れ、しかもそれは静かに起こります。コンテンツが多いサイトやCMSのエクスポートで、10言語にわたる破損したHTMLを修正するのは現実的な作業フローではありません。
さらに悪いことに、標準の翻訳APIは決して変わってはいけない内容、例えばCSSクラス名、href URL、src属性、技術的識別子を含むariaラベル、データ属性などを翻訳してしまうことがあります。その結果、HTMLが正しくレンダリングされなくなり、いくつかの変更は視覚的テストを通過してから実行時エラーを引き起こすほど微妙です。
CMS生成HTML、メールテンプレート、またはプログラム的に処理されるHTMLの場合、翻訳後の修正は必須です。これは隠れたメンテナンスコストとなり、コンテンツ更新ごとに増大します。
PolyLingoは翻訳前にDOMを解析します。
PolyLingoはHTMLを文字列としてではなくドキュメントとして扱います。DOM構造を辿り、可視コンテンツを含むテキストノードを特定し、それらのみを翻訳モデルに送ります。タグ名、属性値、クラス名、href値、データ属性などの構造的要素は翻訳モデルに一切渡されません。出力されるHTMLは有効で、送信したものと構造的に同一です。
PolyLingoはHTMLを生のテキストとして扱うのではなくDOMパーサーを使用します。翻訳前にHTMLはノードツリーに解析されます。各ノードは分類され、自然言語を含むテキストノードのみが翻訳用に抽出され、要素ノード、非言語的な属性値(クラス名、ID、href、src、データ属性)、翻訳不可のコンテンツ(スクリプト、スタイル、コードブロック)は完全に除外されます。
翻訳されたテキストノードは元のDOM構造に再挿入されます。結果のHTMLはソースと意味的に同等で、タグの入れ子構造、属性値、構造的マークアップは同一です。変わるのは可視テキストのみです。
<article class="post">
<h1 class="post-title">How to build a multilingual site</h1>
<p>Building a <strong>multilingual website</strong> doesn't have to be
complicated. The key is choosing the right translation layer.</p>
<a href="/pricing" class="cta-button" aria-label="View pricing">
See our plans
</a>
<img src="/hero.png" alt="Multilingual platform dashboard" />
</article><article class="post">
<h1 class="post-title">Comment créer un site multilingue</h1>
<p>Créer un <strong>site web multilingue</strong> n'a pas à être
compliqué. La clé est de choisir la bonne couche de traduction.</p>
<a href="/pricing" class="cta-button" aria-label="Voir les tarifs">
Voir nos offres
</a>
<img src="/hero.png" alt="Tableau de bord de la plateforme multilingue" />
</article>翻訳されるもの vs 保持されるもの
| 翻訳される | 保持される | |
|---|---|---|
| タグ間のテキストコンテンツ | はい | いいえ |
| タイトル属性(アクセシブルラベル) | はい | いいえ |
| 画像の代替テキスト | はい | いいえ |
| Aria-label属性 | はい | いいえ |
| 入力のプレースホルダーテキスト | はい | いいえ |
| HTMLタグ名 | いいえ | はい |
| クラスおよびID属性 | いいえ | はい |
| hrefおよびsrcのURL | いいえ | はい |
| データ属性 | いいえ | はい |
| スクリプトおよびスタイルブロック | いいえ | はい |
PolyLingoがすべてのHTML翻訳で対応する内容
- ✓タグ名と構造は決して変更されない
- ✓クラス名、ID、データ属性は変更されない
- ✓リンクのhrefとsrc値は正確に保持される
- ✓可視テキストノードのみ翻訳される
- ✓RTL言語:dir属性が正しく処理される
- ✓フルページ、フラグメント、コンポーネントに対応
- ✓ネストされたHTML — 任意の深さの要素ネストを正しく処理
- ✓メールHTML — インラインスタイルとテーブルベースのレイアウトを保持
PolyLingoでHTMLコンテンツを翻訳する方法
HTMLをAPIに送信する
HTMLコンテンツを/v1/translateにPOSTします。formatを「html」に設定するか省略してください — PolyLingoはコンテンツから自動的にHTMLを検出します。ターゲット言語コードを含めてください。
クリーンで翻訳済みのHTMLを受け取る
レスポンスにはターゲット言語ごとに翻訳されたHTML文字列が含まれます。タグ、クラス、ID、属性はすべて送信した通りです。変わるのは自然言語のテキストのみです。
CMS、テンプレート、ファイルに書き込む
翻訳済みHTMLをCMS、メールビルダー、静的サイトジェネレーター、またはHTMLを扱う他のツールで直接使用してください。後処理や修正は不要です。
HTML翻訳が必要な場面
CMSのページおよび投稿のエクスポート
ヘッドレスCMSプラットフォームはコンテンツをHTMLまたはHTMLにシリアライズされるリッチテキストとして保存します。PolyLingoは各ロケール向けにこのコンテンツを翻訳し、CMSが作成した構造とフォーマットを保持します。
メールテンプレート
メールHTMLは非常に壊れやすいです — テーブルベースのレイアウト、インラインスタイル、深くネストされた構造は単純な翻訳で壊れます。PolyLingoはこれらすべてを保持します。
Eコマースの製品説明
製品説明はしばしばスタイル付きリスト、太字テキスト、構造化されたコンテンツを含むフォーマット済みHTMLです。大規模に翻訳するには正確なフォーマット保持が必要で、出力が言語間で一貫してレンダリングされます。
HTML翻訳に関するよくある質問
PolyLingoはtitleやaltテキストのような属性も翻訳しますか?
はい。画像のalt属性、要素のtitle属性、aria-label属性、フォーム入力のplaceholder属性は自然言語テキストを含むと認識され翻訳されます。hrefやsrc属性、クラス名、ID、データ属性は翻訳されません。
インラインJavaScriptやstyle属性はどうなりますか?
scriptタグとstyleタグは決して翻訳されず、その内容はそのまま通過します。インラインのstyle属性(style="...")も正確に保持されます。翻訳されるのは自然言語テキストのみです。
PolyLingoはdoctypeやheadを含むフルページHTMLに対応していますか?
はい。PolyLingoはdoctype、head、bodyを含む完全なHTMLドキュメントを処理できます。head内のtitle要素、meta description、Open Graphタグは翻訳可能です。canonical URL、meta charset、技術的なmetaタグは変更されません。
ProseMirrorやTipTapのようなリッチテキストエディターで生成されたHTMLにも対応していますか?
はい。リッチテキストエディターの出力は標準的なHTMLにシリアライズされます。PolyLingoは生成方法に関わらず有効なHTMLを処理します。DOMパーサーはHTML文字列自体から動作し、エディター固有のフォーマットからではありません。
&や©のようなHTMLエンティティはどうなりますか?
HTMLエンティティは翻訳前にデコードされ、出力時に再エンコードされます。&、©、—のような名前付きエンティティは保持されます。数値エンティティも正しく処理されます。翻訳後の出力は元のエンティティエンコーディングを使用します。
HTML翻訳のファイルサイズ制限はありますか?
個々の翻訳リクエストは64KBのコンテンツに制限されています。長文(長文記事、フルページ)の場合は自然な区切り(セクション、記事)で分割し、翻訳後に再結合する方法が推奨されます。これによりトークン使用の精度も向上します。
クリーンアップ不要でHTMLを翻訳しよう。
無料プランあり。クレジットカード不要。有効なHTMLがそのまま出力されます。
無料で翻訳を始める任意のHTMLを貼り付けて、何が翻訳され何がされないかを正確に確認できます。