翻译文字

借助 Vertex AI Translation 服务,您可以将以某种语言撰写的文本翻译成任何其他支持的语言

本页面介绍了如何在 Google Distributed Cloud (GDC) 气隙设备上使用 Vertex AI Translation API 翻译示例文本。

准备工作

在开始使用 Vertex AI Translation API 之前,您必须有一个启用了 Vertex AI Translation API 的项目,并且必须具有适当的凭据。您还可以安装客户端库,以便调用 API。如需了解详情,请参阅设置翻译项目

翻译文字

translateText 方法接受特定语言的输入文本,并返回翻译成另一种语言的文本。您可以输入纯文本或 HTML 文本作为输入。

如果您输入 HTML 文本,translateText 方法只会翻译 HTML 标记之间的文本,而不会翻译标记。不过,它会翻译 HTML5 标记中的属性,例如 alt 属性。语法中使用了 HTML5 标记和属性的示例,用于排除要翻译的文本。输出会保留未翻译的 HTML 标记,并将翻译的文本置于标记之间。

向 Vertex AI Translation 预训练 API 发出 curl 请求。否则,请通过 Python 脚本与 Vertex AI Translation 预训练 API 互动,将文本从一种语言翻译成另一种语言。

以下示例展示了如何将输入文本从一种语言翻译成另一种语言:

curl

如需提交curl请求,请按以下步骤操作:

  1. 获取身份验证令牌

  2. 发出请求:

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d '{"parent": "projects/PROJECT_ID", "source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "contents": ["INPUT_TEXT"]}'

替换以下内容:

  • TOKEN:您获得的身份验证令牌
  • ENDPOINT:您组织使用的 Vertex AI Translation 端点。如需了解详情,请查看服务状态和端点
  • PROJECT_ID:您的项目 ID。
  • SOURCE_LANGUAGE:输入文本的语言代码。 请参阅支持的语言及其各自的语言代码列表。
  • TARGET_LANGUAGE:您希望将文本翻译成的语言代码。请参阅支持的语言及其各自的语言代码列表。
  • INPUT_TEXT:您输入的源语言文本。

使用 mime_type 字段指定文件类型。将 mime_type 字段设置为以下值之一:

  • text/plain:您的输入是纯文本。
  • text/html:您的输入是 HTML 文本。

如果 mime_type 字段为空,则默认值为 text/html

以下示例使用 mime_type 字段:

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d '{"mime_type": "text/html", "parent": "projects/PROJECT_ID", "source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "contents": ["INPUT_TEXT"]}'

输出会返回翻译后的文本。

Python

如需从 Python 脚本中使用 Vertex AI Translation 服务,请按以下步骤操作:

  1. 安装最新版本的 Vertex AI Translation 客户端库

  2. 在 Python 脚本中设置所需的环境变量

  3. 对 API 请求进行身份验证

  4. 将以下代码添加到您创建的 Python 脚本中:

    from google.cloud import translate
    import google.auth
    from google.auth.transport import requests
    from google.api_core.client_options import ClientOptions
    
    audience = "https://ENDPOINT:443"
    api_endpoint="ENDPOINT:443"
    
    def translate_client(creds):
      opts = ClientOptions(api_endpoint=api_endpoint)
      return translate.TranslationServiceClient(credentials=creds, client_options=opts)
    
    def main():
      creds = None
      try:
        creds, project_id = google.auth.default()
        creds = creds.with_gdch_audience(audience)
        req = requests.Request()
        creds.refresh(req)
        print("Got token: ")
        print(creds.token)
      except Exception as e:
        print("Caught exception" + str(e))
        raise e
      return creds
    
    def translate_func(creds):
      tc = translate_client(creds)
      req = {
        "parent": "projects/PROJECT_ID",
        "source_language_code": "SOURCE_LANGUAGE",
        "target_language_code": "TARGET_LANGUAGE",
        "mime_type": "text/plain",
        "contents": ["INPUT_TEXT"]
      }
    
      resp = tc.translate_text(req)
      print(resp)
    
    if __name__=="__main__":
      creds = main()
      translate_func(creds)
    

    替换以下内容:

    • ENDPOINT:您组织使用的 Vertex AI Translation 端点。如需了解详情,请查看服务状态和端点
    • PROJECT_ID:您的项目 ID。
    • SOURCE_LANGUAGE:输入文本的语言代码。 请参阅支持的语言及其各自的语言代码列表。
    • TARGET_LANGUAGE:您希望将文本翻译成的语言代码。请参阅支持的语言及其各自的语言代码列表。
    • INPUT_TEXT:您输入的源语言文本。

    使用 mime_type 字段指定文件类型。将 mime_type 字段设置为以下值之一:

    • text/plain:您的输入是纯文本。
    • text/html:您的输入是 HTML 文本。

    如果 mime_type 字段为空,则默认值为 text/html

  5. 保存 Python 脚本。

  6. 运行 Python 脚本以翻译文本:

    python SCRIPT_NAME
    

    SCRIPT_NAME 替换为您为 Python 脚本指定的名称,例如 translation.py

排除翻译中的文本

在请求的 contents 字段中使用以下某个 HTML 标记,以排除文本中的部分内容,使其不被翻译:

  • <span translate="no">"TEXT"</span>
  • <span class="notranslate">"TEXT"</span>

TEXT 替换为要排除在翻译范围之外的文本部分。

例如,如果您有以下法语输入文本:

Bonjour, c'est un test.

然后,该文本会翻译成以下英文句子:

Hello, this is a test.

假设您只想翻译文本的以下部分,并从输入文本中排除 Bonjour,

c'est un test.

该部分文本翻译成英文后如下所示:

this is a test.

使用 HTML 标记从翻译中排除文本。例如,以下 curl 请求使用 <span class="notranslate">"TEXT"</span> 标记在将文本从法语翻译为英语时,从之前的法语输入文本中排除 Bonjour,

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d '{"parent": "projects/PROJECT_ID", "source_language_code": "fr", "target_language_code": "en", "contents": [<span class="notranslate">"Bonjour,"</span>"c'est un test."]}'

检测语言

detectLanguage 方法通过发送 HTTP 请求返回文本字符串的语言。

例如,以下请求会检测到输入文本 Hello, this is a test 的语言为英语:

curl

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:detectLanguage -d '{"parent": "projects/PROJECT_ID", "content": "Hello, this is a test"}'

获取支持的语言

supportedLanguages 方法会返回 Vertex AI Translation API 支持的语言列表。

例如,以下请求通过指定 Vertex AI Translation 端点来返回支持的语言:

curl

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/locations/PROJECT_ID/supportedLanguages -d "{}"

如需查看受支持的语言的完整列表,请参阅 Vertex AI Translation 支持的语言