使用Go語(yǔ)言輕松實(shí)現(xiàn)谷歌翻譯
大家好!今天我來(lái)介紹一種使用Go語(yǔ)言進(jìn)行谷歌翻譯的簡(jiǎn)單方法。在副業(yè)過(guò)程中,我發(fā)現(xiàn)需要將韓語(yǔ)翻譯成漢語(yǔ),以便群友更容易理解公告內(nèi)容。最初考慮使用deepL,但是在使用其API時(shí)遇到了一些問(wèn)題。于是我找到了一個(gè)非常簡(jiǎn)單的Go庫(kù),能夠輕松實(shí)現(xiàn)谷歌翻譯:https://github.com/bregydoc/gtranslate。
例子
這個(gè)庫(kù)非常簡(jiǎn)單,只有兩個(gè)方法可供使用:Translate和TranslateWithParams。其中,TranslateWithParams方法還提供了一些可選參數(shù),但對(duì)于簡(jiǎn)單的翻譯任務(wù),我們只需要使用From和To參數(shù)即可。
下面是一個(gè)簡(jiǎn)單的例子,將英文的 "Hello,World!" 翻譯成中文、日文和韓文,并與網(wǎng)頁(yè)版的谷歌翻譯結(jié)果進(jìn)行對(duì)比:
package main
import (
"fmt"
"github.com/bregydoc/gtranslate"
"golang.org/x/text/language"
)
func main() {
text := "Hello,World!"
ja, err := translate(text, language.English.String(), language.Japanese.String())
if err != nil {
panic(err)
}
fmt.Printf("en: %s | ja: %s \\n", text, ja)
ch, err := translate(text, language.English.String(), language.Chinese.String())
if err != nil {
panic(err)
}
fmt.Printf("en: %s | ch: %s \\n", text, ch)
kr, err := translate(text, language.English.String(), language.Korean.String())
if err != nil {
panic(err)
}
fmt.Printf("en: %s | kr: %s \\n", text, kr)
}
func translate(text string, src, dst string) (string, error) {
translated, err := gtranslate.TranslateWithParams(
text,
gtranslate.TranslationParams{
From: src,
To: dst,
},
)
return translated, err
}
輸出結(jié)果如下:
en: Hello,World! | ja: こんにちは世界!
en: Hello,World! | ch: 你好世界!
en: Hello,World! | kr: ?????, ??!
與網(wǎng)頁(yè)版谷歌翻譯的結(jié)果完全一致:
日語(yǔ):こんにちは世界!
中文:你好世界!
韓文:?????, ??!
使用Go語(yǔ)言實(shí)現(xiàn)谷歌翻譯如此簡(jiǎn)單,希望這個(gè)例子能夠幫助大家在自己的項(xiàng)目中實(shí)現(xiàn)類似的功能。如果你對(duì)這個(gè)庫(kù)感興趣,不妨去GitHub上查看更多詳細(xì)信息。