Maison  >  Article  >  développement back-end  >  Go Language implémente l'API de traduction Baidu pour réaliser des traductions en chinois et en turc

Go Language implémente l'API de traduction Baidu pour réaliser des traductions en chinois et en turc

WBOY
WBOYoriginal
2023-08-04 14:13:48877parcourir

Go Language implémente l'API de traduction Baidu pour réaliser une traduction chinois-turc

L'API de traduction Baidu est un service de traduction automatique couramment utilisé qui fournit des fonctions de traduction entre plusieurs langues. Cet article utilisera le langage Go pour implémenter la fonction de traduction du chinois vers le turc via l'API de traduction Baidu. Tout d’abord, nous devons demander un compte API Baidu Translation et obtenir l’ID d’application et la clé correspondants. Ensuite, nous pouvons utiliser le langage Go pour écrire le code correspondant pour implémenter la fonction de traduction.

Tout d'abord, nous devons introduire le package correspondant et définir quelques variables. L'exemple de code est le suivant :

package main

import (
    "crypto/md5"
    "encoding/hex"
    "fmt"
    "io/ioutil"
    "net/http"
    "net/url"
    "strings"
    "time"
)

const (
    appID  = "your_app_id"     // 替换为自己的应用ID
    appKey = "your_app_key"    // 替换为自己的密钥
    apiUrl = "http://api.fanyi.baidu.com/api/trans/vip/translate" // 翻译API的URL
)

Ensuite, nous définissons une fonction pour générer les informations de signature requises pour accéder à l'API de traduction Baidu. :

func generateSign(query, salt string) string {
    str := appID + query + salt + appKey
    hash := md5.Sum([]byte(str))
    sign := hex.EncodeToString(hash[:])
    return sign
}

Ensuite, nous définissons une fonction pour envoyer des requêtes HTTP et obtenir les résultats de la traduction. L'exemple de code est le suivant :

func getTranslation(query, from, to string) (string, error) {
    salt := fmt.Sprintf("%d", time.Now().UnixNano())
    sign := generateSign(query, salt)

    values := url.Values{}
    values.Set("q", query)
    values.Set("from", from)
    values.Set("to", to)
    values.Set("appid", appID)
    values.Set("salt", salt)
    values.Set("sign", sign)

    url := apiUrl + "?" + values.Encode()
    resp, err := http.Get(url)
    if err != nil {
        return "", err
    }
    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        return "", err
    }

    return string(body), nil
}

Enfin, nous pouvons appeler la fonction getTranslation dans la fonction principale pour effectuer la traduction. suit :

func main() {
    query := "你好世界" // 需要翻译的文本
    from := "zh"     // 源语言为中文
    to := "tr"       // 目标语言为土耳其文

    result, err := getTranslation(query, from, to)
    if err != nil {
        fmt.Println("翻译出错:", err)
        return
    }

    fmt.Println("翻译结果:", result)
}

Exécutez le code ci-dessus pour ""Hello World" est traduit en turc et les résultats de la traduction sont affichés.

Grâce à l'exemple de code ci-dessus, nous pouvons voir comment utiliser le langage Go pour implémenter la traduction via l'API de traduction Baidu. Il vous suffit de remplacer l'ID de l'application et de saisir le code par vos propres informations, et de spécifier la langue source et la langue cible qui doivent être traduites, pour réaliser la fonction de traduction entre d'autres langues. Dans le même temps, vous pouvez également étendre et optimiser le code en fonction de vos besoins réels. J'espère que cet article vous aidera à implémenter les fonctions de l'API de traduction Baidu !

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn