マークアップを保持する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は構造とフォーマットを保持しつつ、各ロケール向けにこのコンテンツを翻訳します。
メールテンプレート
メール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を貼り付けて、何が翻訳され何がされないかを正確に確認できます。