Google Translate API:如何在不更改短语含义的情况下添加换行符

时间:2017-12-08 07:18:52

标签: html rest google-translate

我正在使用google translate rest api将字符串转换为另一种语言。我想插入一些字符串' \ n'。它正在改变句子的意思 例如

字符串:还剩35秒

它在我的应用程序中的显示方式:

35

字符串的翻译: 35ਕਿੰਟਕਿੰਟਬਬਕੀ

必需输出:

35

ਸਕਿੰਟ

ਬਾਕੀ

我的尝试:

q:35 \ n秒\ n左

输出:35 \ nਸਕਿੰਟ\ nਖੱਬੇ(这里ਖੱਬੇ表示左方向不是什么 实际需要"剩余"即ਬਾਕੀ)

q:35 <br> seconds <br> left

输出:35 <br> ਸਕਿੰਟ <br> ਖੱਬੇ

q:35 \ n秒\ n左

输出:<span class=\"e;notranslate\"e;>35, \\ n</span> ਸਕਿੰਟ <span class=\"e;notranslate\"e;>n</span> ਖੱਬਾ <span class=\"e;notranslate\"e;>\\</span>

我还尝试为换行添加随机数

q:35 123456秒123456离开

输出:35 123456ਸਕਿੰਟ123456ਬਾਕੀ

这对于上面的字符串是正确的,因为我可以用\ n轻松替换123456但是对于其他一些字符串,它会破坏句子的含义。

然而,它在google

上正常运作

我正在使用Rest api,我尝试指定格式 html

1 个答案:

答案 0 :(得分:0)

翻译是一项复杂的任务。您尝试做的是在句子中强制使用特定语法,然后对其进行翻译,并希望在新语言中使用相同的语法。情况并非总是如此,并且需要应用程序知道插入语法的语义(在您的情况下是换行符和数字)。您可能希望更详细地阅读描述该问题的this article

而不是试图猜测你在句子中插入换行符时的意思,它只是假设你正在开始一个新的。这将导致每行被单独翻译,导致非最佳翻译。

我如何处理这个问题,就是翻译字符串,例如

35 seconds left➡️35 ਸਕਿੰਟ ਬਾਕੀ

然后我会用换行符替换输出中的空格,结果如下:

35 ਸਕਿੰਟ ਬਾਕੀ➡️35\nਸਕਿੰਟ\nਬਾਕੀ

让我强调这不是一般解决方案,但它可能适用于多种语言,因为您的用例相当简单,即短句。