Utilisation du langage Go pour développer l'API de traduction Baidu afin de réaliser une traduction mutuelle entre le chinois et l'indonésien
Dans le contexte de la mondialisation, les échanges entre pays sont devenus de plus en plus fréquents. La traduction est devenue un outil indispensable et joue un rôle important dans la communication interculturelle. L'API de traduction Baidu est un outil de traduction puissant et facile à utiliser qui peut répondre aux besoins de traduction entre différentes langues. Cet article expliquera comment utiliser le langage Go pour développer l'API de traduction Baidu afin de réaliser une traduction mutuelle entre le chinois et l'indonésien, et joindra des exemples de code correspondants.
Tout d'abord, nous devons nous inscrire et créer une application sur la plateforme de traduction Baidu, et obtenir l'ID d'application et la clé d'application de l'application. L'adresse d'enregistrement est : https://fanyi-api.baidu.com/product/11
Ensuite, nous pouvons écrire du code en langage Go et envoyer des demandes de traduction à l'API de traduction Baidu via des requêtes HTTP. Nous pouvons utiliser le package net/http de Go pour envoyer des requêtes HTTP et le package github.com/tidwall/gjson pour analyser les données JSON renvoyées.
package main import ( "encoding/json" "fmt" "io/ioutil" "net/http" "net/url" "strings" "github.com/tidwall/gjson" ) const ( appID = "your_app_id" appKey = "your_app_key" apiURL = "https://fanyi-api.baidu.com/api/trans/vip/translate" ) type TranslationResult struct { From string `json:"from"` To string `json:"to"` TransResult []struct { Src string `json:"src"` Dst string `json:"dst"` } `json:"trans_result"` } func main() { // 定义要翻译的文本和目标语言 text := "Hello world!" targetLanguage := "id" // id表示印尼文 // 构建请求参数 values := url.Values{} values.Add("q", text) values.Add("from", "auto") values.Add("to", targetLanguage) values.Add("appid", appID) values.Add("salt", "1") values.Add("sign", generateSign(text)) // 发送请求 resp, err := http.PostForm(apiURL, values) if err != nil { fmt.Println("翻译请求发送失败:", err) return } defer resp.Body.Close() // 读取响应内容 body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("响应内容读取失败:", err) return } // 解析JSON数据 translationResult := TranslationResult{} err = json.Unmarshal(body, &translationResult) if err != nil { fmt.Println("JSON数据解析失败:", err) return } // 获取翻译结果 if len(translationResult.TransResult) > 0 { fmt.Println("原文:", translationResult.TransResult[0].Src) fmt.Println("翻译结果:", translationResult.TransResult[0].Dst) } else { fmt.Println("翻译结果为空") } } // 生成签名 func generateSign(text string) string { return fmt.Sprintf("%x", md5.Sum([]byte(appID+text+"1"+appKey))) }
Dans le code ci-dessus, nous définissons d'abord une structure TranslationResult pour stocker les résultats de traduction renvoyés. Ensuite, nous définissons une fonction principale dans laquelle nous complétons les étapes suivantes :
Il est à noter que dans la fonction generateSign
du code, nous utilisons l'algorithme md5 pour chiffrer la chaîne à signer. Ceci afin d’assurer la sécurité de la demande. Dans le développement actuel, nous pouvons également utiliser d'autres algorithmes de chiffrement pour générer des signatures.
Enfin, nous pouvons exécuter le code et voir les résultats de la traduction sur la console. Par exemple, si nous traduisons « Hello world ! » de l’anglais vers l’indonésien, nous obtiendrons le résultat de la traduction « Halo dunia ! ».
Grâce à l'exemple de code ci-dessus, nous avons développé avec succès une application simple utilisant le langage Go pour réaliser la fonction de traduction mutuelle entre le chinois et l'indonésien. Grâce aux fonctions puissantes de l'API de traduction Baidu, nous pouvons facilement traduire entre différentes langues et promouvoir la communication et la coopération entre différents pays et régions. J'espère que cet article pourra aider les développeurs qui développent des applications connexes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!