【发布时间】:2019-01-21 16:32:14
【问题描述】:
在我们公司,我们有来自不同国家的员工将文本翻译成他们的母语。几年前,我们开发了一种翻译工具。使用该工具,翻译人员和需要翻译的人员都可以比发送电子邮件更好地处理此翻译过程。
现在我们想改进该工具并使用 Google 或 Deepl 等工具自动翻译,这样我们的翻译人员就不必翻译,只需检查一下即可。这有望为他们节省大量时间。但是我们在处理复杂的 HTML 内容(例如我们的文章)时遇到了一些困难。我已经尝试过 DeepL,并且似乎返回了更准确和自然的翻译。但它正在翻译 HTML 标记内的内容。例如,href 属性正在被翻译,因此链接将不起作用。无论我使用 Google 还是 DeepL,我都想提取句子,这样我就不会被 HTML 字符收费。
我已阅读:
Temporary removal of HTML from string for Google Translate API to reduce cost
Exclude HTML tags when translating with Google Translate API https://stackoverflow.com/a/1732454/5126638
Extract sentences from HTML in PHP
我们有 PHP 代码,可以使用 strip_tags() 清理所有 HTML 标记并将结果文本拆分为句子。之后,在数据库中检查每个句子。已翻译的句子在原始 HTML 文本中被替换 (str_replace())。通过这种方式,我将 HTML 内容翻译成另一种语言。
我希望能正确翻译任何 HTML,但自包含标签破坏了逻辑。该代码适用于以下内容:
<p><ul><li>Article about our web page</li></ul></p>
但不能处理:
<p><ul><li>Article about our <strong>web page</strong></li></ul></p>
当 HTML 标记被删除时,句子是“关于我们网页的文章”。翻译后,它尝试替换为原始文本并失败。由于str_replace找不到那句话,中间有<strong>。
如何改进我的代码以翻译完整的 HTML 内容?
我已经检查过了,谷歌翻译可以正确处理这个问题。他们是如何完成这项工作的?有没有开发的库?
编辑:一些例子:
<tr align="left" valign="middle">
<td height="22"><strong>Identification time</strong></td>
<td height="22">< 0.5 Sec.</td>
</tr>
<tr align="left" valign="middle">
<td height="22"><strong>Power supply</strong></td>
<td>DC 5 V / 1.0 A (included)</td>
</tr>
<tr align="left" valign="middle">
<td height="22"><strong>Temp. operation</strong></td>
<td>-30º C ~ +60º C</td>
</tr>
【问题讨论】:
标签: php html google-translate deepl