Go:如何使用 Google Translate 翻譯文本
你有沒有想過如何開發自己的翻譯器?或者你是否遇到過需要開發文本翻譯功能的需求?那麼本文關於 Golang 如何使用谷歌翻譯 API 翻譯文本的教程就是爲你準備的!讓我們來看看今天的教程都講了些什麼。
-
RapidAPI 的理解和實現
-
創建 API 和用戶接口
-
實現服務端文本翻譯邏輯
初始化配置
先初始化一個 Go 項目:在本地創建 "google-translate 文件夾,在這個文件夾中創建一個名爲 server 的新文件夾。在這個文件夾中,我們將執行後端代碼。
mkdir google-translate
cd google-translate
mkdir server
go mode init translate
Rapid API 設置
在 RapidAPI Hub[https://rapidapi.com/hub] 這個網站上創建一個帳戶。如果你已經註冊了,那就直接登錄。
RapidAPI Hub
RapidAPI hub 是一個 API 中心,是開發人員能夠查找、管理和連接大量的 API。讓開發人員在一個地方管理所有的 API 集成,並提供實時性能指標。
在上面打開的 RapidAPI 網站的左上角搜索框中,搜索 Google Translate,在返回的列表中找到並點擊進入:
Google Translate
然後你需要訂閱 API:
選擇訂閱 Google 翻譯 API。
可以選擇免費的,會返回訂閱成功:
你將獲得 “X-RapidAPI-Key” 用於發送請求。請保管好你的密匙。
測試翻譯 API 接口
在 RapidAPI 網站上,我們可以看到可使用的接口:
Google 翻譯接口
中間一欄介紹每個接口詳細信息,右邊一欄提供了各種語言的接口 Demo。
獲取各種語言種類接口
我們在網站上選擇 GET language 接口,查看 Go 語言實現如下所示:
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://google-translate1.p.rapidapi.com/language/translate/v2/languages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Accept-Encoding", "application/gzip")
req.Header.Add("X-RapidAPI-Key", "xxxxxx")
req.Header.Add("X-RapidAPI-Host", "google-translate1.p.rapidapi.com")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
執行結果如下:
{
"data":
{
"languages":
[
{
"language": "af"
},
{
"language": "ak"
},
{
"language": "am"
},
{
"language": "en" //英文
},
{
"language": "zh-CN" //中文
},
...
]
}
}
上面返回的就是 Google 翻譯支持的各種語言。
翻譯 API
現在我們根據上面的語言列表,使用翻譯 API 來對英文到中文翻譯功能的測試。
代碼如下所示:
package main
import (
"fmt"
"io/ioutil"
"net/http"
"strings"
)
func main() {
url := "https://google-translate1.p.rapidapi.com/language/translate/v2"
payload := strings.NewReader("q=Hello%2C%20world!&target=zh-CN&source=en")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("content-type", "application/x-www-form-urlencoded")
req.Header.Add("Accept-Encoding", "application/gzip")
req.Header.Add("X-RapidAPI-Key", "xxxx")
req.Header.Add("X-RapidAPI-Host", "google-translate1.p.rapidapi.com")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
執行結果:
{
"data":
{
"translations":
[
{
"translatedText": "你好世界!"
}
]
}
}
基於以上兩個接口,就可以實現翻譯功能了。
Github 上面也有完整的例子,結合前端的實現:
代碼地址:https://github.com/Aniket303/google-translate1
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/0qJm59opxehE4cVbNgszXQ