翻译的有很多 谷歌啊 百度啊 有道啊
我们中国人吗 哈(……..) 无奈。。。。用百度吧.
下面的是翻译的 api地址
通用翻译API HTTP地址:
http://api.fanyi.baidu.com/api/trans/vip/translate
通用翻译API HTTPS地址:
https://fanyi-api.baidu.com/api/trans/vip/translate
再来看看输入的参数表
好吧我们用Go 写一个 函数 它这个是 可以用 get/post 来请求的
我这边就用post了 好了 上代码咯
func BaiduTranslate(appid string, appkey string, fr string, to string, query string) string { client := &http.Client{Timeout: 5 * time.Second} rand.Seed(int64(time.Now().UnixNano())) salt := strconv.Itoa(rand.Intn(32768) + (65536 - 32768)) sign := MD5(appid + query + salt + appkey) payload := url.Values{"appid": {appid}, "q": {query}, "from": {fr}, "to": {to}, "salt": {salt}, "sign": {sign}} resp, err := client.Post(apiURL, "application/x-www-form-urlencoded", strings.NewReader(payload.Encode())) if err == nil { defer resp.Body.Close() data, _ := ioutil.ReadAll(resp.Body) JO := gjson.ParseBytes(data) if JO.Exists() { if JO.Get("error_code").Int() > 0 { // 如果存在 这个字段肯定不会是零的咯 return JO.Get("error_msg").String() } if JO.Get("trans_result").IsArray() { return JO.Get("trans_result").Array()[0].Get("dst").String() } } } return "" }
上面的 函数用到一个 MD5的 下面也贴出来
func MD5(str string) string { _md5 := md5.New() _md5.Write([]byte(str)) return hex.EncodeToString(_md5.Sum([]byte(""))) }
调用的话
S := BaiduTranslate("id","key","en", "zh","This is Golang tutorial series.")
参数
你开通的 百度 id , key
从语言到语言
原文
这边我习惯了 使用 gjson来解析 json的数据 你们也可以改成你们习惯的
如果也使用 gjson 没有安装的话 通过下面的命令 安装下
go get -u github.com/tidwall/gjson