假设我有一条推文,我想通过 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我不确定它是否相关。
是否有记录的方法可以使其正常工作?
最佳答案
我刚刚使用包含主题标签的文本尝试了 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>
中.然后,您应该能够使用一些简单的正则表达式模式替换操作仅用其中的内容替换结果中的所有此类跨度 block 。$ 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"
}
]
}
}
关于google-api - Google Translate API 是否支持占位符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45019466/