ホームページ >バックエンド開発 >Golang >Go 言語と Baidu 翻訳 API を使用して中国語と韓国語を相互に翻訳する

Go 言語と Baidu 翻訳 API を使用して中国語と韓国語を相互に翻訳する

王林
王林オリジナル
2023-08-04 08:05:10789ブラウズ

Go 言語と Baidu Translation API を使用して中国語と韓国語の相互翻訳を実現

はじめに

言語を超えてコミュニケーションし、協力する必要がある人がますます増えています。この記事では、Go言語とBaidu Translation APIを使って中国語と韓国語の相互翻訳を実現する方法を紹介します。 Go 言語は簡潔で効率的なプログラミング言語であり、Baidu Translation API は機械翻訳サービスを提供するインターフェイスです。 Go 言語を使用して、Baidu Translation API を通じて中国語と韓国語の相互翻訳を実現する簡単なプログラムを作成します。

環境構成

まず、Baidu API オープン プラットフォームで開発者アカウントを申請し、アプリケーションを作成し、API のアプリ ID とキーを取得する必要があります。次に、Go 言語開発環境をインストールし、 go get コマンドを使用して関連する依存関係パッケージをインストールする必要があります。

go get github.com/go-resty/resty/v2
go get golang.org/x/text/encoding/simplifiedchinese

コード実装

以下は、Go 言語と Baidu 翻訳 API を使用して中国語と韓国語を相互に翻訳するコード例です。

package main

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

    "github.com/go-resty/resty/v2"
    "golang.org/x/text/encoding/simplifiedchinese"
)

const (
    appID     = "your_app_id"     // 请替换为你的应用App ID
    appSecret = "your_app_secret" // 请替换为你的应用密钥
    baseURL   = "https://fanyi-api.baidu.com/api/trans/vip/translate"
)

func main() {
    // 输入中文文本
    chineseText := "你好,世界!"
    // 中文翻译为韩文
    koreanText, err := translate(chineseText, "auto", "zh", "ko")
    if err != nil {
        fmt.Printf("翻译失败:%s
", err)
        return
    }
    fmt.Println("中文翻译为韩文:", koreanText)

    // 输入韩文文本
    koreanText = "안녕하세요, 세계!"
    // 韩文翻译为中文
    chineseText, err = translate(koreanText, "auto", "ko", "zh")
    if err != nil {
        fmt.Printf("翻译失败:%s
", err)
        return
    }
    fmt.Println("韩文翻译为中文:", chineseText)
}

func translate(text string, from, to, lang string) (string, error) {
    client := resty.New()
    // 使用URL编码对文本进行处理
    text = url.QueryEscape(text)
    // 拼接请求URL
    reqURL := fmt.Sprintf("%s?q=%s&from=%s&to=%s&appid=%s&salt=1", baseURL, text, from, to, appID)
    // 发送GET请求
    resp, err := client.R().Get(reqURL)
    if err != nil {
        return "", err
    }
    // 解析返回的JSON数据
    respData := struct {
        TransResult []struct {
            Src string `json:"src"`
            Dst string `json:"dst"`
        } `json:"trans_result"`
    }{}
    err = resp.Unmarshal(&respData)
    if err != nil {
        return "", err
    }
    // 提取翻译结果
    result := ""
    for _, tr := range respData.TransResult {
        result += tr.Dst
    }
    // 如果目标语言是中文,则解码
    if lang == "zh" {
        decoder := simplifiedchinese.GB18030.NewDecoder()
        decodedResult, err := decoder.String(result)
        if err != nil {
            return "", err
        }
        result = decodedResult
    }
    // 返回翻译结果
    return result, nil
}

上記のコードでは、まず、Baidu Translation API のアプリ ID、キー、リクエスト URL などの定数を定義します。次に、HTTP リクエストを送信し、返された JSON データを解析する translate 関数を定義しました。最後に、main 関数で translate 関数を呼び出し、中国語と韓国語の相互翻訳を実現します。

実行結果の出力

プログラムを実行すると、中国語と韓国語の翻訳結果が出力されます。

中文翻译为韩文: 안녕하세요, 세계!
韩文翻译为中文: 你好,世界!

概要

この記事では、次の方法を紹介します。 Go 言語を使用する Baidu Translation API を使用して、中国語と韓国語を相互に翻訳します。 Go 言語の HTTP クライアント ライブラリと Baidu Translation API が提供するインターフェイスを使用することで、中国語のテキストを韓国語に、韓国語のテキストを中国語に簡単に翻訳できます。実際のプロジェクトでは、必要に応じてコードをカプセル化して拡張し、より複雑な翻訳機能を実現できます。この記事がお役に立てば幸いです!

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

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