Google Cloud Translation

用于调用 Google Cloud Translation v3 gRPC API 以翻译文本并检测文本语言的类型化接口。

简介

Google Cloud Translation 在不同语言之间翻译文本,并可自动检测源语言。该 gRPC API 通过 google.cloud.translation.v3.TranslationService 服务公开,在 translate.googleapis.com:443 上通过 TLS 访问,主要方法包括 TranslateTextDetectLanguageGetSupportedLanguages

请求通过 TsgcGRPCTranslationTranslateTextRequest 构建,它会设置 Parent (projects/<id>/locations/global)、Contents、SourceLanguageCode 和 TargetLanguageCode。响应在 TsgcGRPCTranslationTranslateTextResponse 中返回,其 Translations 包含 TranslatedText。

下面的示例使用服务账户 JWT 进行身份验证,通过 TsgcHTTP2ClientTsgcGRPCClient 连接到 Translation 主机,设置授权 Bearer 元数据,并调用 TranslateText 将 "Hello, world!" 从 en 翻译为 es:


    oHTTP2 := TsgcHTTP2Client.Create(nil);
    oHTTP2.Host := 'translate.googleapis.com';
    oHTTP2.Port := 443;
    oHTTP2.TLS := True;

    oGRPC := TsgcGRPCClient.Create(nil);
    oGRPC.Client := oHTTP2;

    // service-account JWT authentication
    oGRPC.GoogleCloudOptions.JWT.KeyFile := 'service-account.json';
    oGRPC.GoogleCloudOptions.JWT.API_Endpoint := 'https://translate.googleapis.com/';
    oGRPC.DefaultMetadata.AddValue('authorization', 'Bearer ' + oGRPC.GoogleCloudOptions.JWT.Token);

    // build the typed request and call the method
    oRequest := TsgcGRPCTranslationTranslateTextRequest.Create;
    try
      oRequest.Parent := 'projects/my-project-id/locations/global';
      oRequest.Contents.Add('Hello, world!');
      oRequest.SourceLanguageCode := 'en';
      oRequest.TargetLanguageCode := 'es';
      oResponse := oGRPC.Call('google.cloud.translation.v3.TranslationService', 'TranslateText', oRequest.ToBytes);
      ShowMessage(oResponse.DataString);
    finally
      oRequest.Free;
    end;

方法

名称描述
TranslateText将一个或多个文本字符串从源语言翻译为目标语言。
DetectLanguage检测所提供文本的语言。
GetSupportedLanguages返回翻译所支持的语言列表。

演示

示例文件夹 Demos/21.GRPC/12.Translation 中提供了一个可用的示例,演示如何使用 TranslateText 方法进行身份验证并翻译文本。

另请参阅