// 百度翻译Api 中文翻译成英文 是一个辅助功能插件
import Md5 from './md5.min';
const info = {
apiServer: window.location.protocol === 'http:' ? 'http://api.fanyi.baidu.com/api/trans/vip/translate' :
'https://fanyi-api.baidu.com/api/trans/vip/translate',
from: 'zh',
to: 'en',
appid: '你的百度翻译AppId',
};
window.jsonpCallback = function(response){
if(response && response.trans_result && response.trans_result.length){
let res = response.trans_result[0].dst;
if(res){
window.jsonpCallbackRes = res;
}else{
window.jsonpCallbackRes = '';
}
}
};
function ajax(url, reslove){ // jsonp 请求 百度翻译接口
let jsonp = document.createElement('script');
jsonp.type = 'text/javascript';
jsonp.src = url+'&callback=jsonpCallback';
document.getElementsByTagName('head')[0].appendChild(jsonp);
jsonp.onload = (e) => {
reslove(true);
}
}
export default function translate(q = ''){
const { from, to, appid, apiServer } = info;
const salt = Date.parse(new Date()) / 1000;
let params = {
q,
from,
to,
appid,
salt,
sign: Md5(appid + q + salt + '你的百度翻译Api密匙'),
};
let url = apiServer + `?q=${q}&from=${from}&to=${to}&appid=${appid}&salt=${salt}&sign=${params.sign}`;
return new Promise((reslove,reject)=> {
return ajax(url, reslove);
}).then((res) => {
return window.jsonpCallbackRes; // 返回翻译后的信息
});
}
使用方法
translate('中国').then((res) => {
console.log(res); // China
})
md5加密
https://github.com/blueimp/JavaScript-MD5/blob/master/js/md5.min.js 下载下来然后 import 到项目中
Md5('xxxx');
相关文档
https://api.fanyi.baidu.com/product/113 百度翻译Api