Go 언어를 사용하여 중국어 및 영어 번역용 바이두 번역 API 구현
인터넷의 발달로 사람들 간의 의사소통이 점점 더 빈번해지고, 서로 다른 언어 간의 의사소통 문제가 점차 두드러지고 있습니다. . 이 문제를 해결하기 위해 Baidu는 중국어와 영어를 즉시 번역할 수 있는 강력한 번역 API를 제공합니다. 이 기사에서는 Go 언어를 사용하여 Baidu Translation API를 호출하는 방법을 소개하고 해당 코드 예제를 제공합니다.
먼저 Baidu 개발자 플랫폼에서 번역 API 애플리케이션을 만들고 해당 API 키와 비밀 키를 얻어야 합니다. 이 중요한 정보를 저장하려면 프로젝트 루트 디렉터리에 config.json 파일을 만듭니다.
{ "APIKey": "your_api_key", "SecretKey": "your_secret_key" }
먼저 해당 패키지와 도구를 소개해야 합니다.
package main import ( "crypto/md5" "encoding/hex" "encoding/json" "fmt" "io/ioutil" "net/http" "net/url" "strings" "time" )
다음으로 서명을 생성하는 함수를 구현해야 합니다. 구체적인 생성 규칙은 다음과 같습니다.
다음은 해당 코드 구현입니다.
func generateSign(query string, salt string, secretKey string) string { h := md5.New() h.Write([]byte(secretKey + query + salt)) sign := hex.EncodeToString(h.Sum(nil)) return strings.ToUpper(sign) }
다음으로 HTTP 요청을 보내고 해당 번역 결과를 얻는 기능을 구현해야 합니다.
func translate(query string, from string, to string) string { // 加载API Key和Secret Key configFile, err := ioutil.ReadFile("config.json") if err != nil { panic("Failed to read config file.") } var config struct { APIKey string `json:"APIKey"` SecretKey string `json:"SecretKey"` } err = json.Unmarshal(configFile, &config) if err != nil { panic("Failed to parse config file.") } // 构造请求参数 params := url.Values{} params.Set("q", query) params.Set("from", from) params.Set("to", to) params.Set("appid", config.APIKey) // 生成salt和sign salt := fmt.Sprintf("%d", time.Now().UnixNano()) sign := generateSign(query, salt, config.SecretKey) // 构造请求URL apiURL := fmt.Sprintf("https://fanyi-api.baidu.com/api/trans/vip/translate?%s&salt=%s&sign=%s", params.Encode(), salt, sign) // 发送HTTP请求 resp, err := http.Get(apiURL) if err != nil { panic("Failed to send request to Baidu Translate API.") } defer resp.Body.Close() // 解析响应体 body, err := ioutil.ReadAll(resp.Body) if err != nil { panic("Failed to read response body.") } // 解析JSON数据 var data struct { TransResult []struct { Src string `json:"src"` Dst string `json:"dst"` } `json:"trans_result"` } err = json.Unmarshal(body, &data) if err != nil { panic("Failed to parse response body.") } // 获取翻译结果 translation := data.TransResult[0].Dst return translation }
마지막으로 번역 기능을 테스트하기 위해 메인 기능을 구현해야 합니다.
func main() { query := "Hello, World!" from := "auto" to := "zh" translation := translate(query, from, to) fmt.Println(translation) }
터미널에서 다음 명령을 실행합니다.
go run main.go
프로그램은 Baidu Translation API를 호출하여 "Hello, World!"를 중국어로 번역한 후 결과를 인쇄합니다.
이 글에서는 Go 언어를 사용하여 중국어 및 영어 번역용 바이두 번역 API를 구현하는 방법을 자세히 소개합니다. Baidu Translation API를 호출하면 서로 다른 언어 간의 즉각적인 번역을 쉽게 달성할 수 있습니다. 이 글이 도움이 되셨으면 좋겠습니다. 읽어주셔서 감사합니다!
위 내용은 go 언어를 사용하여 중국어 및 영어 번역용 Baidu 번역 API 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!