GoLang调用 google translate API 实现中英互译

本文主要讲述如何使用golang调用google translate API。其中也详细介绍了使用google translate API的前提条件设置google ADC(Application Default Credentials )。

安装 google translate golang client

1
go get cloud.google.com/go/translate

导入依赖包

1
import "cloud.google.com/go/translate"

编写translateText函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

func translateText(targetLanguage, text string) (string, error) {

ctx := context.Background()

lang, err := language.Parse(targetLanguage)
if err != nil {
return "", fmt.Errorf("language.Parse: %w", err)
}

client, err := translate.NewClient(ctx)
if err != nil {
return "", err
}
defer client.Close()

resp, err := client.Translate(ctx, []string{text}, lang, nil)
if err != nil {
return "", fmt.Errorf("translate: %w", err)
}
if len(resp) == 0 {
return "", fmt.Errorf("translate returned empty response to text: %s", text)
}
return resp[0].Text, nil
}

设置google ADC(Application Default Credentials )

Application Default Credentials (ADC) 是身份验证库使用的一种策略,可根据应用环境自动查找凭据。身份验证库会将这些凭据提供给 Cloud 客户端库和 Google API 客户端库。

安装并初始化 gcloud CLI

以下是适合 Red Hat Enterprise Linux 7、8 和 9、Fedora 33 和 34 以及 CentOS 7 和 CentOS 8 系统的安装方式。

对于 其他系统可以参考安装 gcloud CLI

1
2
3

curl --output /tmp/google-cloud-cli-linux-x86_64.tar.gz -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-linux-x86_64.tar.gz

安装并配置google cloud cli

1
2
3
4
5
6
7
8
9
10
11
12
13

# 创建安装目录
mkdir ~/google-cloud-sdk

# 将安装包解压到安装目录
tar -xvzf /tmp/google-cloud-cli-linux-x86_64.tar.gz -C ~

# 将 gcloud CLI 添加到路径中。使用以下命令从解压缩到的文件夹的根目录运行安装脚本:
cd ~

./google-cloud-sdk/install.sh


初始化 gcloud CLI

1
2
3

./google-cloud-sdk/bin/gcloud init

这一步需要登陆google账号进行设置, 其中有一步是选择或创建project

选择project后记住project id 后面需要用到

登陆google

1
2
3

gcloud auth application-default login

浏览器访问,并开启Cloud Translation API
https://console.developers.google.com/apis/api/translate.googleapis.com/overview?project=your_project_id

测试代码

1
2
3
4
5
6

result, err := translateText("ZH-CN", "Hello")
if err != nil {
fmt.Println(err)
}
fmt.Println(result)

看到“你好”表示能成功调用google translate API了。

参考文档

设置应用默认凭据

Go client library

翻译文本(基本版)

安装 gcloud CLI

GoLang调用 google translate API 实现中英互译

https://pengtech.net/golang/golang_google_translate_api.html

作者

鹏叔

发布于

2024-08-13

更新于

2024-08-14

许可协议

评论