1

Google Translate API 允许指示不应翻译的文本块

<span translate='no'>Skip this text while translating</span>

在某些情况下,非翻译标签的行为不正确,这会导致翻译 API 省略其中一个词并复制非翻译标签。翻译API的输入:

0c40152c asdasd alsdls3 ec3f297a <span translate="no">AAAAA123AAAA</span> Nov 30 translate

从意大利语翻译成英语时(不确定语言是否重要),返回以下结果:

0c40152c asdasd alsdls3 ec3f297a <span translate="no">AAAAA123AAAA</span> Nov 30 <span translate="no">AAAAA123AAAA</span>

请注意,文本末尾的“翻译”已替换为非翻译标签。<span translate='no'>如果我不使用替代语法,则会出现此问题: <span class='notranslate'>.

这是一个已知的错误 ?它有一个合理的解决方法吗?

4

2 回答 2

1

这是一个已知的错误?

是:https ://issuetracker.google.com/issues/121076288

span 标签中的 notranslate 类的翻译问题

您遇到
的问题:翻译 API 从德语翻译成阿拉伯语时给出了错误的结果

德语文本:
QANTARA Migration - Kostenfreie Erstprüfung Ihrer Chancen für die erfolgreiche Immigration nach Deutschland

阿拉伯语翻译:
QANTARA Migration - إجراء فحص أولي مجاني لفرص نجاح QANTARA Migration إلى ألمانيا

您期望发生的事情:
正确翻译而不用 notranslate 加倍跨度 - 如您所见,这在阿拉伯语翻译中加倍

还有一些其他的似乎相关,例如https://issuetracker.google.com/issues/74168658https://issuetracker.google.com/issues/35902695

它有一个合理的解决方法吗?

恐怕只有hacky的。

最简单的解决方法是用一个标记替换这些部分,比如一个唯一的数字或 url,翻译足够聪明,不会触摸、翻译,然后将原始字符串换回。

一个更通用的解决方案是使用类似ModelFront(完全披露:我在那里工作)来检测错误,并且只在这些情况下做一些事情。

于 2019-01-08T10:18:18.757 回答
-2

似乎您已将意大利语指定为输入语言,但文本中可翻译的单词很少(例如“翻译”),并且无法在源语言中识别。这可能源于翻译算法的问题,这里似乎就是这种情况。

一种解决方法是将源语言设置为由 API自动检测并检查置信度值

置信度值是介于 0 和 1 之间的可选浮点值。该值越接近 1,语言检测的置信度越高。该成员并不总是可用

如果置信度值足够高以满足您的需求,它将尝试检测要翻译的适当源语言。

另一种解决方法可能是在文本中添加更多单词,以便算法有更多数据可供使用。我已经 使用与您描述的相同的输入测试了 API,但添加了更多单词。结果输出是预期的。

于 2018-12-20T11:32:26.080 回答