Google Translate API 是否支持占位符?

cat*_*045 5 google-api google-translate google-cloud-platform

假设我有一条推文,我想通过 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 /}
Run Code Online (Sandbox Code Playgroud)

这是回应:

{1} {2} {3}} {4} {5}} party over here {0}
Run Code Online (Sandbox Code Playgroud)

这不是我所期望的。但是,我想放入占位符,否则实际的主题标签会被翻译,并且不会指向与原始推文相同的结果。

API 文档中没有提到占位符,所以我想我对它失败并不感到惊讶。也许它们不受支持。我发现的唯一一件事就是这个,我不确定它是否相关。

是否有记录的方法来使这个工作?

Tux*_*ude 5

我刚刚尝试了包含主题标签的文本的 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"
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

跳过部分文本的翻译

如果您不想翻译一段文本,您可以将其包含在<span class="notranslate">CONTENT_NOT_TO_BE_TRANSLATED</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"
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)