我有一个Android应用程序,使用谷歌翻译API。一切都很顺利,包括当我试着把"我们吃过了"这样的撇号翻译成西班牙语时。
但是,当我应该返回的翻译结果包含撇号时,就会出现问题。例如,当我将一个西班牙语短语"a ver"翻译成英语时,它会返回"Let's see",在"9"后面加一个";"。似乎每当我有一个应该返回撇号的短语时,它都会返回"'"one_answers"9"后面的";"。(不把";"放在"9"后面,因为它会被stackoverflow转换成撇号)。
我能想到一个方法来解决它。在得到翻译结果之后,我可以匹配字符串"'"+";"并将其替换为撇号。然而,我不觉得这是我应该处理它的方式。用户实际上不太可能输入"'"作为翻译的输入,但是像这样硬编码手动转换似乎可能会导致问题。我很想听听你对这个问题的看法。
请让我知道我应该如何解决/处理这个问题。
谢谢!
最好的解决方案是将&format=text
添加到您的查询中。
你是正确的硬编码不是解决方案,但是你可以通过使用已经提供的HTML类将这个HTML实体转换回撇号。
Html.fromHtml((String) "Let's see").toString()
以上代码将转换任何有效的HTML实体。我希望这是你正在寻找的
谢谢纪尧姆。对于使用php的用户。
$translation = $translate->translate($stringToTranslate, ['target' => $target, 'format' => 'text']);
谢谢纪尧姆。对于那些使用go的人。(api v3)
req := &translatepb.TranslateTextRequest{
MimeType: "text/plain", // add this line to request
}