破损的标记比没有翻译更糟。
通过标准翻译API发送HTML存在风险。标签会被部分翻译。属性值会被破坏。不应更改的类名却被更改。输出在纯文本中看起来正确,但在浏览器中会破坏——且是无声破坏。对于内容丰富的网站或CMS导出,修复10种语言中的损坏HTML不是合理的工作流程。
更糟的是,标准翻译API经常翻译不应更改的内容——CSS类名、href URL、src属性、包含技术标识符的aria标签和数据属性。结果HTML无法正确渲染,有些更改细微到在视觉测试中通过,但会导致运行时错误。
对于CMS生成的HTML、电子邮件模板或任何程序处理的HTML,翻译后的修复不是可选项。这成为一个隐藏的维护成本,随着每次内容更新而累积。
PolyLingo在翻译前解析DOM。
PolyLingo将您的HTML视为文档,而非字符串。它遍历DOM结构,识别包含可见内容的文本节点,仅将这些节点发送给翻译模型。标签名、属性值、类名、href值、数据属性——翻译模型永远不会看到任何结构性内容。输出的HTML有效且结构与您发送的完全相同。
PolyLingo使用DOM解析器,而非将HTML视为原始文本。翻译前,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>翻译内容与保留内容对比
| 已翻译 | 保留 | |
|---|---|---|
| 标签间的文本内容 | 是 | 否 |
| title属性(辅助标签) | 是 | 否 |
| 图片的alt文本 | 是 | 否 |
| aria-label属性 | 是 | 否 |
| 输入框的占位符文本 | 是 | 否 |
| HTML标签名 | 否 | 是 |
| 类和ID属性 | 否 | 是 |
| href和src URL | 否 | 是 |
| 数据属性 | 否 | 是 |
| 脚本和样式块 | 否 | 是 |
PolyLingo在每次HTML翻译中处理的内容
- ✓标签名和结构永不修改
- ✓类名、ID、数据属性保持不变
- ✓链接的href和src值完全保留
- ✓仅翻译可见文本节点
- ✓RTL语言:正确处理dir属性
- ✓支持完整页面、片段和组件
- ✓嵌套HTML——正确处理任意深度的元素嵌套
- ✓电子邮件HTML——保留内联样式和基于表格的布局
如何使用PolyLingo翻译HTML内容
将您的HTML发送到API
将您的HTML内容POST到/v1/translate。设置format为“html”或省略——PolyLingo会自动从内容检测HTML。包含目标语言代码。
接收干净的翻译HTML
响应包含每个目标语言的一个翻译HTML字符串。每个标签、类、ID和属性都与您发送的完全相同。只有自然语言文本发生变化。
写入您的CMS、模板或文件
直接在您的CMS、邮件构建器、静态站点生成器或任何消费HTML的工具中使用翻译后的HTML。无需后期处理或修复。
HTML翻译的应用场景
CMS页面和文章导出
无头CMS平台将内容存储为HTML或序列化为HTML的富文本。PolyLingo为每个语言环境翻译此内容,同时保留CMS创建的结构和格式。
电子邮件模板
电子邮件HTML极其脆弱——基于表格的布局、内联样式和深度嵌套结构在简单翻译中会破坏。PolyLingo完整保留所有内容。
电商产品描述
产品描述通常包含格式化的HTML,如样式列表、加粗文本和结构化内容。大规模翻译需要精确保留格式,以确保输出在各语言间一致渲染。
关于HTML翻译的常见问题
PolyLingo会翻译title和alt文本等属性吗?
会。图片的alt属性、元素的title属性、aria-label属性和表单输入的placeholder属性被识别为包含自然语言文本并被翻译。href和src属性、类名、ID和数据属性不被翻译。
内联JavaScript或样式属性怎么办?
脚本标签和样式标签绝不翻译——其内容原样通过。内联样式属性(style="...")也完全保留。唯一被翻译的内容是自然语言文本。
PolyLingo能处理包含doctype和head的完整HTML页面吗?
能。PolyLingo能处理包含doctype、head和body的完整HTML文档。head中的title元素、meta描述和Open Graph标签可翻译。规范URL、meta charset和技术meta标签保持不变。
它能处理由ProseMirror或TipTap等富文本编辑器生成的HTML吗?
能。富文本编辑器输出的HTML序列化为标准HTML。PolyLingo处理任何有效HTML,无论其生成方式如何。DOM解析器直接从HTML字符串工作,而非任何编辑器特定格式。
HTML实体如&或©如何处理?
HTML实体在翻译前被解码,输出时重新编码。命名实体如&、©和—被保留。数字实体也被正确处理。翻译输出使用与源相同的实体编码。
HTML翻译有文件大小限制吗?
单次翻译请求限制为64KB内容。对于较长文档(长篇文章、完整页面),建议在自然边界(章节、文章)拆分并翻译后重新组装。这也有助于准确使用令牌。