用于调用 Google Cloud Translation v3 gRPC API 以翻译文本并检测文本语言的类型化接口。
Google Cloud Translation 在不同语言之间翻译文本,并可自动检测源语言。该 gRPC API 通过 google.cloud.translation.v3.TranslationService 服务公开,在 translate.googleapis.com:443 上通过 TLS 访问,主要方法包括 TranslateText、DetectLanguage 和 GetSupportedLanguages。
请求通过 TsgcGRPCTranslationTranslateTextRequest 构建,它会设置 Parent (projects/<id>/locations/global)、Contents、SourceLanguageCode 和 TargetLanguageCode。响应在 TsgcGRPCTranslationTranslateTextResponse 中返回,其 Translations 包含 TranslatedText。
下面的示例使用服务账户 JWT 进行身份验证,通过 TsgcHTTP2Client 将 TsgcGRPCClient 连接到 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 方法进行身份验证并翻译文本。