Home  >  Article  >  Backend Development  >  Using go language to develop Baidu translation API to realize mutual translation between Chinese and Ukrainian

Using go language to develop Baidu translation API to realize mutual translation between Chinese and Ukrainian

WBOY
WBOYOriginal
2023-08-04 18:05:041199browse

Use go language to develop Baidu Translation API to realize mutual translation between Chinese and Ukrainian

In this article, we will introduce how to use go language to develop a simple program to realize mutual translation between Chinese and Ukrainian through Baidu Translation API translation between each other. We will show how to use Go language to send API requests, parse the returned JSON data, and provide complete code examples for reference.

Baidu Translation API is a very useful tool that can help us achieve translation between multiple languages. In this article, we will use the go language to write a simple program to achieve translation from Chinese to Ukrainian and translation from Ukrainian to Chinese through Baidu Translation API.

First, we need to register an account on Baidu Open Platform and create an application to obtain the API access key. After obtaining the secret key, we can start writing our program.

First, we need to import some necessary packages:

import (
    "encoding/json"
    "fmt"
    "io/ioutil"
    "net/http"
)

Next, we need to define some constants to store information related to Baidu Translation API:

const (
    apiUrl = "https://fanyi-api.baidu.com/api/trans/vip/translate"
    appId = "your_app_id"
    appKey = "your_app_key"
)

Please Replace your_app_id and your_app_key with the application ID and key under your own account.

Next, we define a Translation structure to store the translation results:

type Translation struct {
    From string `json:"from"`
    To string `json:"to"`
    TransResult []struct {
        Src string `json:"src"`
        Dst string `json:"dst"`
    } `json:"trans_result"`
}

Then, we define a Translate function, using To translate:

func Translate(text string, fromLang string, toLang string) (string, error) {
    // 构建请求URL
    reqUrl := fmt.Sprintf("%s?q=%s&from=%s&to=%s&appid=%s&salt=1435660288&sign=%s",
        apiUrl, text, fromLang, toLang, appId, appKey)

    // 发送请求
    resp, err := http.Get(reqUrl)
    if err != nil {
        return "", err
    }
    defer resp.Body.Close()

    // 读取返回的数据
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        return "", err
    }

    // 解析JSON数据
    var result Translation
    err = json.Unmarshal([]byte(body), &result)
    if err != nil {
        return "", err
    }

    // 返回翻译结果
    return result.TransResult[0].Dst, nil
}

Finally, we can write a main function to call the Translate function and print the translation result:

func main() {
    text := "你好,世界!"

    // 中文到乌克兰文
    dst, err := Translate(text, "zh", "uk")
    if err != nil {
        fmt.Println("翻译失败:", err)
        return
    }
    fmt.Println("中文到乌克兰文的翻译结果:", dst)

    // 乌克兰文到中文
    dst, err = Translate(dst, "uk", "zh")
    if err != nil {
        fmt.Println("翻译失败:", err)
        return
    }
    fmt.Println("乌克兰文到中文的翻译结果:", dst)
}

By running the above code, we can see that the Chinese text "Hello, world!" is successfully translated into Ukrainian. Then, by translating again based on the Ukrainian translation results, we can successfully translate it back to Chinese.

In this article, we introduce how to use go language to develop a simple program to achieve mutual translation between Chinese and Ukrainian through Baidu Translation API. We used the HTTP package of the go language to send API requests, and used the encoding/json package to parse the returned JSON data. The complete code example can be found in the code section of this article. Hope this article helps you!

The above is the detailed content of Using go language to develop Baidu translation API to realize mutual translation between Chinese and Ukrainian. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn