ホームページ  >  記事  >  バックエンド開発  >  Go 言語と Baidu 翻訳 API を使用して中国語とデンマーク語の翻訳を実現する

Go 言語と Baidu 翻訳 API を使用して中国語とデンマーク語の翻訳を実現する

WBOY
WBOYオリジナル
2023-08-05 10:30:251247ブラウズ

Go 言語と Baidu Translation API を使用して中国語 - デンマーク語の翻訳を実現

今日のグローバル化の時代において、多言語コミュニケーションは不可欠な能力となっています。世界中の文化に対する人々の理解と関心が高まるにつれて、テキストの言語を越えた翻訳の必要性も高まっています。この記事では、Go 言語と Baidu Translation API を使用して、中国語とデンマーク語の相互翻訳を実現する方法を紹介します。

まず、Baidu 開発者アカウントを登録し、翻訳 API アプリケーションを作成する必要があります。アプリケーションの AppID と AppKey を取得したら、Go 言語コードの記述を開始できます。

まず、必要なパッケージを Go 言語に導入する必要があります。 go get コマンドを使用して github.com/parnurzeal/gorequest パッケージをインストールします。これにより、http リクエストの送信が容易になります。

package main

import (
    "fmt"
    "github.com/parnurzeal/gorequest"
    "log"
    "net/url"
    "strings"
)

次に、翻訳機能を実装する関数 Translate を定義しました。この関数は、ソース言語、ターゲット言語、翻訳対象のテキストをパラメータとして受け取り、翻訳結果を返します。

func Translate(from, to, text string) string {
    appID := "YOUR_APP_ID"
    appKey := "YOUR_APP_KEY"
    apiURL := "http://api.fanyi.baidu.com/api/trans/vip/translate"

    // 构造请求参数
    params := url.Values{}
    params.Set("q", text)
    params.Set("from", from)
    params.Set("to", to)
    params.Set("appid", appID)
    params.Set("salt", "123")

    // 计算sign
    sign := appID + text + "123" + appKey
    params.Set("sign", fmt.Sprintf("%x", md5.Sum([]byte(sign))))

    // 发送翻译请求
    request := gorequest.New()
    resp, body, errs := request.Get(apiURL).Query(params).End()

    if errs != nil {
        log.Fatal(errs)
    }

    if resp.StatusCode != http.StatusOK {
        log.Fatalf("Translation failed with status code: %d", resp.StatusCode)
    }

    // 解析返回结果
    type TranslationResult struct {
        TransResult []struct {
            Src  string `json:"src"`
            Dest string `json:"dst"`
        } `json:"trans_result"`
    }

    result := TranslationResult{}
    if err := json.Unmarshal([]byte(body), &result); err != nil {
        log.Fatal(err)
    }

    // 提取翻译结果
    var translation strings.Builder
    for _, trans := range result.TransResult {
        translation.WriteString(trans.Dest)
    }

    return translation.String()
}

次に、テストのために main 関数の Translate 関数を使用します。

func main() {
    from := "zh" // 中文
    to := "da" // 丹麦文
    text := "你好,世界!" // 待翻译文本

    translation := Translate(from, to, text)
    fmt.Printf("翻译结果:%s
", translation)
}

上記のコードは、中国語からデンマーク語への簡単な翻訳機能を実装しています。他の言語に翻訳する場合は、ニーズに応じて fromtotext の値を変更できます。

Baidu Translation API には特定の呼び出し制限があるため、API への頻繁な呼び出しを避けるために翻訳結果をキャッシュすることをお勧めします。

要約すると、この記事では Go 言語と Baidu Translation API を使用して中国語とデンマーク語の相互翻訳を実現する方法を紹介します。この例では、同様の方法に基づいて他の言語の翻訳機能を実装することもできます。この記事が Go 言語と Baidu Translation API の学習と使用に役立つことを願っています。

以上がGo 言語と Baidu 翻訳 API を使用して中国語とデンマーク語の翻訳を実現するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。