关于go:Google翻译的坑

7次阅读

共计 791 个字符,预计需要花费 2 分钟才能阅读完成。

对于 API V2

如果应用 API V2 版本的 SDK,会呈现内容字符数超过 5K(1024*5),没法翻译的问题,报错:Your client has issued a malformed or illegal request. <ins>That’s all we know.</ins>,也就是说如果用 V2 版本的 SDK 没法翻译长文本,在官网文档中对应的是 base 版本。

API V3

API V3 版本长度尽管也有限度,然而最大能够提交 30KB,绝大部分场景够用,然而这里会产生两个问题。

第一种状况是,翻译代码片段的时候,如果手动把须要翻译的代码片段局部利用正则替换成 <span class="notranslate">--key--</span>,而后本地把响应的标记key 以及对应的代码段缓存成为 map,而后翻译好后传递回来的数据再进行手动替换,则会导致一种状况:尽管来说,对不须要翻译的局部标记了notranslate,尽管这部分标签不翻译,会保留,然而某些状况下,这个标记不翻译局部的<span> 标签中定义的 key 局部,会作为一段纯文本插入翻译后的程序某个局部,而后须要手动依据具体情况,而且这种状况有时候还可能不可意料。

另外一种状况是,实际上自身 VPI V3 接口不会对 <code> 局部内容做翻译,然而会导致本来 <code> 中的换行失落,最初饭回来的翻译内容就是一堆毫无任何格局的内容,看起来乌七八糟的。如果不采纳第一种标记的模式,间接扔给谷歌翻译的话,须要在提交翻译前,对须要翻译的内容中的换行符,也就是 \n 进行替换为 <br>,当然这个\n 在 windows 下可能会是\r\n

以上针对谷歌翻译 SDK 的两个版本以及三个状况的总结,基本上如果须要应用谷歌翻译的人都会遇到,然而在找材料的时候,实际上没有太多相干材料,解决起来比拟麻烦还麻烦。留这篇文章以做总结,心愿后来者遇到相干的状况无奈着手的时候,能够提供肯定的参考。

正文完
 0