const md5 = require("md5"); async cidian_query(word) { if (!word) { return ""; } try { let u = { client: 6, key: 1000006, timestamp: new Date().valueOf(), word: word }; let i = "http://dict.iciba.com/dictionary/word/query/web"; let l = ""; for (let c in u) { l += String(u[c]); } u.signature = md5( i.replace("http://dict.iciba.com", "") + l + "7ece94d9f9c202b0d2ec557dg4r9bc" ); let data = await this.mget(i, u); if (data.status === 1) { console.info(data); if ( data.message && data.message.baesInfo && data.message.baesInfo.translate_result ) { return data.message.baesInfo.translate_result; } else { this.$Message.error("转换失败!"); return ""; } } else { this.$Message.error(data.message); return ""; } } catch (e) { console.info(e); } } mget(url, para) { let parastr = ""; for (let key in para) { parastr += "&" + key + "=" + para[key]; } parastr = parastr.slice(1, parastr.length); // parastr = encodeURIComponent(parastr); url = url + "?" + parastr; return new Promise(function(resolve, reject) { request( { url: url, method: "get", json: true, headers: { "content-type": "application/json" } }, function(error, response, body) { if (!error && response.statusCode === 200) { resolve(body); } else { reject("请求接口失败"); } } ); }); } |
国内免费翻译接口,百度,有道,金山的都好用
网络科技
0
列举几个免费的翻译接口。
常见语种列表(from/to):
简单示例
但是注意免费的有调用频次限制,1秒内只能调用1次,否则会报错:
建议请求后延迟1秒再次调用
否则会报错
注意返回的数据中有空格,注意处理。
type的类型有:
示例
百度翻译
官方文档:https://fanyi-api.baidu.com/doc/21 免费版有请求频次限制。 请求的参数:字段名 | 类型 | 是否必填 | 描述 | 备注 |
---|---|---|---|---|
q | string | 是 | 请求翻译query | UTF-8编码 |
from | string | 是 | 翻译源语言 | 可设置为auto |
to | string | 是 | 翻译目标语言 | 不可设置为auto |
appid | string | 是 | APP ID | 可在管理控制台查看 |
salt | string | 是 | 随机数 | 可为字母或数字的字符串 |
sign | string | 是 | 签名 | appid+q+salt+密钥的MD5值 |
名称 | 代码 | 名称 | 代码 | 名称 | 代码 |
---|---|---|---|---|---|
自动检测 | auto | 中文 | zh | 英语 | en |
粤语 | yue | 文言文 | wyw | 日语 | jp |
韩语 | kor | 法语 | fra | 西班牙语 | spa |
泰语 | th | 阿拉伯语 | ara | 俄语 | ru |
葡萄牙语 | pt | 德语 | de | 意大利语 | it |
希腊语 | el | 荷兰语 | nl | 波兰语 | pl |
保加利亚语 | bul | 爱沙尼亚语 | est | 丹麦语 | dan |
芬兰语 | fin | 捷克语 | cs | 罗马尼亚语 | rom |
斯洛文尼亚语 | slo | 瑞典语 | swe | 匈牙利语 | hu |
繁体中文 | cht | 越南语 | vie |
onst md5 = require("md5"); async cidian_query(word) { if (!word) { return ""; } let q = word; let from = "zh"; let to = "en"; if (this.tozh) { from = "en"; to = "zh"; } else { from = "zh"; to = "en"; } let appid = "xxx"; let key = "xxxx"; let salt = "10086"; let sign = md5("" + appid + q + salt + key); let data = await this.mpost2( "https://fanyi-api.baidu.com/api/trans/vip/translate", { q, from, to, appid, salt, sign } ); if (data.error_code) { this.$Message.error(data.error_msg); return ""; } else { let trans_result = data.trans_result; let str_arr = []; if (trans_result && trans_result.length > 0) { for (let i = 0; i < trans_result.length; i++) { let item = trans_result[i]; str_arr.push(item.dst); } } console.info("转换:", str_arr.join("\n")); return str_arr.join("\n"); } } mpost(url, para) { let bodystr = ""; for (let item in para) { if (item === "q") { bodystr += "&" + item + "=" + encodeURIComponent(para[item]); } else { bodystr += "&" + item + "=" + para[item]; } } bodystr = bodystr.slice(1, bodystr.length); return new Promise(function(resolve, reject) { request( { url: url, method: "POST", json: true, headers: { "content-type": "application/x-www-form-urlencoded; charset=UTF-8" }, body: bodystr }, function(error, response, body) { if (!error && response.statusCode === 200) { resolve(body); } else { reject("请求接口失败"); } } ); }); } |
{"error_code":"54003","error_msg":"Invalid Access Limit"}
|
window.sleep = function(time) { return new Promise(resolve => { setTimeout(resolve, time); }); }; word = await this.cidian_query(word); await window.sleep(1000); |
有道
示例http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i=计算 http://fanyi.youdao.com/translate?&doctype=json&type=ZH_CN2EN&i=计算 http://fanyi.youdao.com/translate?&doctype=json&type=ZH_CN2KR&i=计算返回的数据
{"type":"ZH_CN2EN","errorCode":0,"elapsedTime":0,"translateResult":[[{"src":"计算","tgt":"To calculate"}]]}
|
ZH_CN2EN 中文 » 英语 ZH_CN2JA 中文 » 日语 ZH_CN2KR 中文 » 韩语 ZH_CN2FR 中文 » 法语 ZH_CN2RU 中文 » 俄语 ZH_CN2SP 中文 » 西语 EN2ZH_CN 英语 » 中文 JA2ZH_CN 日语 » 中文 KR2ZH_CN 韩语 » 中文 FR2ZH_CN 法语 » 中文 RU2ZH_CN 俄语 » 中文 SP2ZH_CN 西语 » 中文 |
金山翻译
文字中有特殊符号时有时请求报错。 添加引用
npm install md5 --save
|
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。