- package main
- import (
- "encoding/json"
- "io/ioutil"
- "log"
- "net/http"
- )
- /*
- from字段 to字段 翻译方向
- auto auto 自动识别
- zh en 中 -> 英
- zh jp 中 -> 日
- en zh 英 -> 中
- jp zh 日 -> 中
- */
- func translate(from, to, client_id string, q []string) []string {
- ERROR_CODE := "error_code"
- ERROR_MSG := "error_msg"
- TRANS_RESULT := "trans_result"
- qq := ""
- for _, v := range q {
- qq += v + "%0A"
- }
- // log.Println(qq)
- url := "http://openapi.baidu.com/public/2.0/bmt/translate?client_id=" + client_id + "&q=" + qq + "&from=" + from + "&to=" + to
- // log.Println(url)
- resp, err := http.Get(url)
- if err != nil {
- log.Println("Get the URL ", url, " Error:", err)
- }
- defer resp.Body.Close()
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- log.Println("Read the Response Error:", err)
- }
- j2 := make(map[string]interface{})
- err = json.Unmarshal(body, &j2)
- if err != nil {
- panic(err)
- }
- if j2[ERROR_CODE] != nil {
- log.Println("Error:", j2[ERROR_CODE], "-", j2[ERROR_MSG])
- return nil
- }
- result := j2[TRANS_RESULT].([]interface{})
- response := make([]string, len(result))
- for i := 0; i < len(result); i++ {
- rs := result[i].(map[string]interface{})
- response[i] = rs["dst"].(string)
- // log.Println(rs["src"], rs["dst"])
- }
- return response
- }
- func main() {
- from := "auto"
- to := "auto"
- client_id := "YourAPIKey"
- q1 := []string{"tomorrow", "yesterday", "How Are You", "Tomorrow is another day", "An apple a day, keeps doctors away"}
- a1 := translate(from, to, client_id, q1)
- for _, v := range a1 {
- log.Println(v)
- }
- to = "jp"
- q2 := []string{"白日依山尽", "糗", "
- //该片段来自于http://www.codesnippet.cn/detail/160920135898.html
来源: http://www.codesnippet.cn/detail/160920135898.html