Home > Backend Development > Golang > Go language implements Baidu translation API to realize mutual translation between Chinese and German

Go language implements Baidu translation API to realize mutual translation between Chinese and German

WBOY
Release: 2023-08-06 14:15:21
Original
1432 people have browsed it

go language implements Baidu Translation API to realize mutual translation between Chinese and German

Overview:
In today's era of globalization, the need for language communication is becoming more and more prominent. Baidu Translation API provides convenient online translation services, and Go language, as a fast and efficient programming language, can easily call Baidu Translation API. This article will introduce how to use Go language to write a simple program to realize the function of mutual translation between Chinese and German.

Preparation work:
Before starting to write code, you need to apply for a developer account of Baidu Translation API and obtain the corresponding application ID and key. For specific application steps, please refer to the official documentation of Baidu Translation API. After obtaining the application ID and key, we can start writing code.

Code example:

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
    "net/url"
    "strings"
)

func main() {
    fromLang := "zh" // 源语言,中文
    toLang := "de"   // 目标语言,德文
    query := "你好"   // 要翻译的文本

    appID := "your_app_id"       // 替换为自己的应用ID
    appSecret := "your_app_key"  // 替换为自己的应用密钥

    apiURL := "https://fanyi-api.baidu.com/api/trans/vip/translate"

    data := url.Values{}
    data.Set("q", query)
    data.Set("from", fromLang)
    data.Set("to", toLang)
    data.Set("appid", appID)

    salt := "1435660288"
    data.Set("salt", salt)

    sign := appID + query + salt + appSecret

    // 计算签名
    sign = strings.ToLower(sign)
    sign = fmt.Sprintf("%x", sha256.Sum256([]byte(sign)))

    data.Set("sign", sign)

    req, err := http.NewRequest("POST", apiURL, strings.NewReader(data.Encode()))
    if err != nil {
        fmt.Println("Error occurred while creating request:", err)
        return
    }

    req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        fmt.Println("Error occurred while sending request:", err)
        return
    }

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Println("Error occurred while reading response:", err)
        return
    }

    fmt.Println(string(body))
}
Copy after login

Running result example:

{
    "from": "zh",
    "to": "de",
    "trans_result": [{
        "src": "你好",
        "dst": "Hallo"
    }]
}
Copy after login

Code analysis:
The above code sends a request to Baidu Translation API through HTTP POST request and obtains the translation result . Among them, we first set the source language, target language and text to be translated. Then, according to the requirements of the official documentation, we spliced ​​the request URL and calculated the sign value. Next, we create an HTTP request and set the Content-Type of the request header. Then, send the request and read the result of the response. Finally, print the translation results.

Summary:
By using the Go language, we can easily call Baidu Translation API to achieve mutual translation between Chinese and German. In actual projects, we can make more expansions and optimizations as needed. I hope that the sample code in this article can be helpful to readers and promote further development in language communication.

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

source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template