Go 言語を使用して中国語と英語の翻訳に Baidu Translation API を実装する
インターネットの発展に伴い、人々の間のコミュニケーションはますます頻繁になり、異なる言語を使用する人々の間でのコミュニケーションはますます頻繁になり、従業員間のコミュニケーションの問題もますます顕著になってきています。この問題を解決するために、Baidu は中国語と英語の間で即時翻訳を実現できる強力な翻訳 API を提供しています。この記事では、Go 言語を使用して Baidu Translation API を呼び出す方法と、対応するコード例を紹介します。
まず、Baidu Developer Platform で翻訳 API アプリケーションを作成し、対応する API キーと秘密キーを取得する必要があります。プロジェクトのルート ディレクトリに config.json ファイルを作成して、この機密情報を保存します。
{ "APIKey": "your_api_key", "SecretKey": "your_secret_key" }
まず、対応するパッケージとツールを導入する必要があります。
package main import ( "crypto/md5" "encoding/hex" "encoding/json" "fmt" "io/ioutil" "net/http" "net/url" "strings" "time" )
次に、署名を生成する関数を実装する必要があります。具体的な生成ルールは次のとおりです:
以下は、対応するコードの実装です:
func generateSign(query string, salt string, secretKey string) string { h := md5.New() h.Write([]byte(secretKey + query + salt)) sign := hex.EncodeToString(h.Sum(nil)) return strings.ToUpper(sign) }
次に、HTTP リクエストを送信し、対応する翻訳結果を取得する関数を実装する必要があります。
func translate(query string, from string, to string) string { // 加载API Key和Secret Key configFile, err := ioutil.ReadFile("config.json") if err != nil { panic("Failed to read config file.") } var config struct { APIKey string `json:"APIKey"` SecretKey string `json:"SecretKey"` } err = json.Unmarshal(configFile, &config) if err != nil { panic("Failed to parse config file.") } // 构造请求参数 params := url.Values{} params.Set("q", query) params.Set("from", from) params.Set("to", to) params.Set("appid", config.APIKey) // 生成salt和sign salt := fmt.Sprintf("%d", time.Now().UnixNano()) sign := generateSign(query, salt, config.SecretKey) // 构造请求URL apiURL := fmt.Sprintf("https://fanyi-api.baidu.com/api/trans/vip/translate?%s&salt=%s&sign=%s", params.Encode(), salt, sign) // 发送HTTP请求 resp, err := http.Get(apiURL) if err != nil { panic("Failed to send request to Baidu Translate API.") } defer resp.Body.Close() // 解析响应体 body, err := ioutil.ReadAll(resp.Body) if err != nil { panic("Failed to read response body.") } // 解析JSON数据 var data struct { TransResult []struct { Src string `json:"src"` Dst string `json:"dst"` } `json:"trans_result"` } err = json.Unmarshal(body, &data) if err != nil { panic("Failed to parse response body.") } // 获取翻译结果 translation := data.TransResult[0].Dst return translation }
最後に、翻訳関数をテストするために main 関数を実装する必要があります。
func main() { query := "Hello, World!" from := "auto" to := "zh" translation := translate(query, from, to) fmt.Println(translation) }
ターミナルで次のコマンドを実行します:
go run main.go
プログラムは Baidu 翻訳 API を呼び出して、「Hello, World!」を中国語に翻訳します。そして結果を印刷します。
この記事では、Go 言語を使用して中国語と英語の翻訳用の Baidu Translation API を実装する方法を詳しく紹介します。 Baidu Translation API を呼び出すことで、異なる言語間の即時翻訳を簡単に実現できます。この記事があなたのお役に立てば幸いです、読んでいただきありがとうございます!
以上がGo 言語を使用して中国語と英語の翻訳のための Baidu 翻訳 API を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。