我正在使用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
答案 0 :(得分:0)
翻译是一项复杂的任务。您尝试做的是在句子中强制使用特定语法,然后对其进行翻译,并希望在新语言中使用相同的语法。情况并非总是如此,并且需要应用程序知道插入语法的语义(在您的情况下是换行符和数字)。您可能希望更详细地阅读描述该问题的this article。
而不是试图猜测你在句子中插入换行符时的意思,它只是假设你正在开始一个新的。这将导致每行被单独翻译,导致非最佳翻译。
我如何处理这个问题,就是翻译字符串,例如
35 seconds left
➡️35 ਸਕਿੰਟ ਬਾਕੀ
。
然后我会用换行符替换输出中的空格,结果如下:
35 ਸਕਿੰਟ ਬਾਕੀ
➡️35\nਸਕਿੰਟ\nਬਾਕੀ
让我强调这不是一般解决方案,但它可能适用于多种语言,因为您的用例相当简单,即短句。