让我们说我有一条推文,我想通过google api进行翻译。
文字:#sf #fiesta #verano #baile #vamos Fiesta aquí @my_friend
我将以下内容发送到API端点https://www.googleapis.com/language/translate/v2
:
{1 /} {2 /} {3 /} {4 /} {5 /} Fiesta aquí {0 /}
这是回复:
{1} {2} {3}} {4} {5}} party over here {0}
这不是我的预期。但是,我想放置占位符,否则实际的主题标签会被翻译,并且不会指向与原始推文相同的结果。
在API docs上没有提到占位符,所以我想我失败并不会感到惊讶。也许他们不受支持。我发现的唯一事情是this,我不确定它是否相关。
是否有记录的方法可以使其正常工作?
答案 0 :(得分:0)
我刚尝试使用包含主题标签的文本的Google Translate API,而Translate API似乎已经在处理hashtags
以及@
提及。它不会翻译任何标签或@
提及。
$ echo '{q: ["#sf #fiesta #verano #baile #vamos Fiesta aquí @my_friend"], source: "es", target: "en" }' | http --print=bB POST 'https://translation.googleapis.com/language/translate/v2?key=MY_API_KEY'
{
q: ["#sf #fiesta #verano #baile #vamos Fiesta aquí @my_friend"],
source: "es",
target: "en"
}
{
"data": {
"translations": [
{
"translatedText": "#sf #fiesta #verano #baile #vamos Party here @my_friend"
}
]
}
}
如果您需要a piece of text to not be translated,可以将其括在<span class="notranslate">CONTENT_NOT_TO_BE_TRANSLATED</span>
内。然后,您应该只使用一些简单的正则表达式模式替换操作中的内容替换结果中的所有此类span块。
$ echo '{q: ["#sf #fiesta #verano #baile #vamos <span class=\"notranslate\">Fiesta</span> aquí @my_friend"], source: "es", target: "en" }' | http --print=bB POST 'https://translation.googleapis.com/language/translate/v2?key=MY_API_KEY'
{
q: ["#sf #fiesta #verano #baile #vamos <span class=\"notranslate\">Fiesta</span> aquí @my_friend"],
source: "es",
target: "en"
}
{
"data": {
"translations": [
{
"#sf #fiesta #verano #baile #vamos <span class=\"notranslate\">Fiesta</span> here @my_friend"
}
]
}
}