Google Translate API是否支持占位符?

时间:2017-07-10 18:40:21

标签: google-api google-cloud-platform google-translate

让我们说我有一条推文,我想通过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,我不确定它是否相关。

是否有记录的方法可以使其正常工作?

1 个答案:

答案 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"
            }
        ]
    }
}