Maison développement back-end Golang Utilisation du langage Go pour développer l'API de traduction Baidu afin de réaliser une traduction mutuelle entre le chinois et le finnois

Utilisation du langage Go pour développer l'API de traduction Baidu afin de réaliser une traduction mutuelle entre le chinois et le finnois

Aug 05, 2023 pm 04:33 PM
go语言 百度翻译api 中芬兰文翻译

Développez l'API de traduction Baidu à l'aide du langage Go pour réaliser une traduction mutuelle entre le chinois et le finnois

À l'ère d'Internet, la communication multilingue est devenue de plus en plus importante. Afin de répondre aux besoins de communication entre différentes langues, de nombreuses entreprises ont lancé des outils de traduction. Baidu Translate est l'un des fournisseurs de services de traduction les plus connus grâce auquel nous pouvons facilement traduire entre différentes langues.

Cet article expliquera comment utiliser le langage go pour développer des applications permettant d'appeler l'API de traduction Baidu afin de réaliser une traduction mutuelle entre le chinois et le finnois. Nous comprendrons d’abord l’utilisation de base de l’API Baidu Translation, puis écrirons un exemple de code pour implémenter la fonction.

Tout d'abord, nous devons postuler pour une application sur la plateforme ouverte de traduction Baidu et obtenir la clé API et la clé secrète. Ces informations sont requises lorsque nous utilisons l'API pour l'authentification et la restriction d'accès. Maintenant que nous disposons de ces deux clés, nous pouvons commencer à écrire du code.

Dans notre exemple de code, nous utiliserons le package "net/http" du langage Go pour envoyer des requêtes HTTP. Tout d'abord, nous devons importer le package :

import (
    "net/http"
    "fmt"
)
Copier après la connexion

Ensuite, nous définissons une fonction translate pour appeler l'API Baidu Translate : translate来调用百度翻译API:

func translate(apiKey string, secretKey string, from string, to string, text string) (string, error) {
    // 构建请求URL
    url := fmt.Sprintf("http://api.fanyi.baidu.com/api/trans/vip/translate?q=%s&from=%s&to=%s&appid=%s&salt=123456&sign=%s",
        text, from, to, apiKey, secretKey)
    
    // 发送HTTP GET请求
    resp, err := http.Get(url)
    if err != nil {
        return "", err
    }
    defer resp.Body.Close()
    
    // 读取响应数据
    data, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        return "", err
    }
    
    // 解析JSON数据
    var result struct {
        Error   int    `json:"error"`
        Message string `json:"message"`
        TransResult []struct {
            Src string `json:"src"`
            Dst string `json:"dst"`
        } `json:"trans_result"`
    }
    err = json.Unmarshal(data, &result)
    if err != nil {
        return "", err
    }
    
    // 判断翻译是否成功
    if result.Error != 0 {
        return "", errors.New(result.Message)
    }
    
    // 返回翻译结果
    return result.TransResult[0].Dst, nil
}
Copier après la connexion

translate函数中,我们通过拼接URL来构建请求。q参数表示要翻译的文本,fromto参数表示源语言和目标语言,appid是我们在百度翻译开放平台上申请的应用ID。通过拼接这些参数,我们可以得到一个完整的请求URL。

然后,我们使用http.Get函数发送GET请求,并读取响应数据。接下来,我们使用json.Unmarshal函数将JSON数据解析为结构体。然后,我们判断翻译是否成功,并返回翻译结果。

接下来,我们可以在main函数中调用translate函数来实现中文和芬兰文之间的翻译:

func main() {
    apiKey := "your_api_key"
    secretKey := "your_secret_key"
    from := "zh"
    to := "fin"
    text := "你好世界"
    
    result, err := translate(apiKey, secretKey, from, to, text)
    if err != nil {
        fmt.Println("翻译失败:", err)
        return
    }
    
    fmt.Println("翻译结果:", result)
}
Copier après la connexion

main函数中,我们需要替换your_api_keyyour_secret_key为我们在百度翻译开放平台上申请到的API Key和Secret Key。然后,我们定义了源语言zh和目标语言fin,以及要翻译的文本你好世界

最后,我们调用translaterrreee

Dans la fonction translate, nous fusionnons l'URL pour construire la requête. Le paramètre q représente le texte à traduire, les paramètres from et to représentent la langue source et la langue cible, et appid est notre identifiant d'application demandé sur la plateforme ouverte de traduction Baidu. En combinant ces paramètres, nous pouvons obtenir une URL de requête complète.

Ensuite, nous utilisons la fonction http.Get pour envoyer une requête GET et lire les données de réponse. Ensuite, nous utilisons la fonction json.Unmarshal pour analyser les données JSON dans une structure. Ensuite, nous déterminons si la traduction est réussie et renvoyons le résultat de la traduction. 🎜🎜Ensuite, nous pouvons appeler la fonction translate dans la fonction main pour traduire entre le chinois et le finnois : 🎜rrreee🎜Dans main >Dans le fonction, nous devons remplacer your_api_key et your_secret_key par la clé API et la clé secrète que nous avons demandées sur la plateforme ouverte de traduction Baidu. Ensuite, nous définissons la langue source zh et la langue cible fin, ainsi que le texte à traduire Hello World. 🎜🎜Enfin, nous appelons la fonction translate et imprimons les résultats de la traduction. 🎜🎜Avec le code ci-dessus, nous pouvons facilement traduire entre le chinois et le finnois. Bien entendu, vous pouvez étendre cet exemple pour prendre en charge davantage de paires de langues. J'espère que cet article pourra vous aider à mieux comprendre comment utiliser le langage go pour développer 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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Apr 02, 2025 pm 02:06 PM

La bibliothèque utilisée pour le fonctionnement du numéro de point flottante dans le langage go présente comment s'assurer que la précision est ...

Quel est le problème avec le fil de file d'attente dans GO's Crawler Colly? Quel est le problème avec le fil de file d'attente dans GO's Crawler Colly? Apr 02, 2025 pm 02:09 PM

Problème de threading de file d'attente dans Go Crawler Colly explore le problème de l'utilisation de la bibliothèque Crawler Crawler dans le langage Go, les développeurs rencontrent souvent des problèmes avec les threads et les files d'attente de demande. � ...

Dans Go, pourquoi les chaînes d'impression avec println et string () ont-elles des effets différents? Dans Go, pourquoi les chaînes d'impression avec println et string () ont-elles des effets différents? Apr 02, 2025 pm 02:03 PM

La différence entre l'impression de chaîne dans le langage go: la différence dans l'effet de l'utilisation de fonctions println et string () est en Go ...

Comment résoudre le problème de conversion de type user_id lors de l'utilisation du flux redis pour implémenter les files d'attente de messages dans le langage Go? Comment résoudre le problème de conversion de type user_id lors de l'utilisation du flux redis pour implémenter les files d'attente de messages dans le langage Go? Apr 02, 2025 pm 04:54 PM

Le problème de l'utilisation de Redessstream pour implémenter les files d'attente de messages dans le langage GO consiste à utiliser le langage GO et redis ...

Quelle est la différence entre la structure de définition des mots clés `var` et« type »dans le langage Go? Quelle est la différence entre la structure de définition des mots clés `var` et« type »dans le langage Go? Apr 02, 2025 pm 12:57 PM

Deux façons de définir les structures dans le langage GO: la différence entre les mots clés VAR et le type. Lorsque vous définissez des structures, GO Language voit souvent deux façons d'écrire différentes: d'abord ...

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Apr 02, 2025 pm 05:09 PM

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Lorsque vous utilisez Goland pour le développement du langage GO, de nombreux développeurs rencontreront des balises de structure personnalisées ...

Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Apr 02, 2025 pm 04:12 PM

Quelles bibliothèques de GO sont développées par de grandes entreprises ou des projets open source bien connus? Lors de la programmation en Go, les développeurs rencontrent souvent des besoins communs, ...

Lorsque vous utilisez SQL.Open, pourquoi ne signale pas une erreur lorsque DSN passe vide? Lorsque vous utilisez SQL.Open, pourquoi ne signale pas une erreur lorsque DSN passe vide? Apr 02, 2025 pm 12:54 PM

Lorsque vous utilisez SQL.Open, pourquoi le DSN ne signale-t-il pas une erreur? En langue go, sql.open ...

See all articles