Utilisez le langage Go pour implémenter l'API de traduction Baidu pour la traduction en chinois et en anglais
Avec le développement d'Internet, la communication entre les personnes est devenue de plus en plus fréquente et les problèmes de communication entre différentes langues sont progressivement devenus importants . Pour résoudre ce problème, Baidu fournit une API de traduction puissante qui permet d'obtenir une traduction instantanée entre le chinois et l'anglais. Cet article explique comment utiliser le langage Go pour appeler l'API de traduction Baidu et donne des exemples de code correspondants.
Tout d'abord, nous devons créer une application API de traduction sur la plateforme de développement Baidu et obtenir la clé API et la clé secrète correspondantes. Créez un fichier config.json dans le répertoire racine du projet pour enregistrer ces informations sensibles.
{ "APIKey": "your_api_key", "SecretKey": "your_secret_key" }
Tout d'abord, nous devons présenter les packages et outils correspondants.
package main import ( "crypto/md5" "encoding/hex" "encoding/json" "fmt" "io/ioutil" "net/http" "net/url" "strings" "time" )
Ensuite, nous devons implémenter une fonction pour générer des signatures. Les règles de génération spécifiques sont les suivantes :
Voici l'implémentation du code correspondante :
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) }
Ensuite, nous devons implémenter une fonction pour envoyer des requêtes HTTP et obtenir les résultats de traduction correspondants.
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 }
Enfin, nous devons implémenter une fonction principale pour tester la fonction de traduction.
func main() { query := "Hello, World!" from := "auto" to := "zh" translation := translate(query, from, to) fmt.Println(translation) }
Exécutez la commande suivante dans le terminal :
go run main.go
Le programme appellera l'API de traduction Baidu pour traduire "Hello, World en chinois!", puis imprimera les résultats.
Cet article présente en détail comment utiliser le langage Go pour implémenter l'API de traduction Baidu pour la traduction en chinois et en anglais. En appelant l'API Baidu Translation, nous pouvons facilement réaliser une traduction instantanée entre différentes langues. J'espère que cet article vous sera utile, merci d'avoir lu !
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!