旧版百度翻译的URL地址:
http://openapi.baidu.com/public/2.0/bmt/translate?client_id=YourApiKey&q=today&from=auto&to=auto
参数只需要:client_id(API key),q(翻译的内容),from(源语言语种:语言代码或auto),to(目标语言语种:语言代码或auto);
新版百度翻译的URL地址:
http://api.fanyi.baidu.com/api/trans/vip/translate?q=apple&from=en&to=zh&appid=2015063000000001&salt=1435660288&sign=f89f9594663708c1605f3d736d01d2d4
参数需要:q(翻译的内容),from(翻译源语言 ,可设置为auto),to(译文语言,不可设置为auto),appid (API key)
salt(随机数),sign(签名)
签名sign生成的方法是:
1、将请求参数中的 APPID(appid), 翻译query(q, 注意为UTF-8编码), 随机数(salt), 以及平台分配的密钥(可在管理控制台查看)
按照 appid+q+salt+密钥 的顺序拼接得到字符串1。
2、对字符串1做md5,得到32位小写的sign。
自己从网上找了一个MD5的加密算法,英文还算正常,但是出现汉字的时候,就会返回一条:
{“error_code”:”54001”,”error_msg”:”Invalid Sign”}
找到错误码列表:
54001 签名错误 请检查您的签名生成方法
没办法,看了一下百度翻译提供的demo:
PHP 版、JS 版、Python 版、C 版
Java呢??木有。。。。。坑爹。。。于是乎JS。。。是不是可以转为Java???经过两天的奋斗。。。。于是乎。。。我放弃了。。。在网上搜寻了一番,返现Java 1.6之后可以直接调用js文件,经过一番调试终于成功了。。。
代码如下:
import java.io.FileReader
import java.util.Date
import javax.script.Invocable
import javax.script.ScriptEngine
import javax.script.ScriptEngineManager
public class TestMD5 {
public static void main(String[] args) {
String APPID = "APPID"// 需要改成自己的APP ID
String KEY = "KEY"//需要改成自己的密钥
String SALT = Long.toString(new Date().getTime())//随机数,官方提供的是获取时间
String SOURCE = "足球"//翻译内容
String SIGN = ""
ScriptEngineManager manager = new ScriptEngineManager()
ScriptEngine engine = manager.getEngineByName("javascript")
String jsFileName = "md5.js"// 读取js文件
FileReader reader
try {
reader = new FileReader(jsFileName)
engine.eval(reader)
if (engine instanceof Invocable) {
Invocable invoke = (Invocable) engine// 调用merge方法,并传入两个参数
System.out.println(APPID + SOURCE + SALT + KEY)
SIGN = (String) invoke.invokeFunction("MD5",
APPID + SOURCE + SALT + KEY)
System.out.println(SIGN)
}
reader.close()
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace()
} // 执行指定脚本
}
}1234567891011121314151617181920212223242526272829303132333435363738394041424312345678910111213141516171819202122232425262728293031323334353637383940414243
运行的结果:d8e590e6dcd9034cb0206efdd04a164f
百度提供的MD5在线生成(http://app.baidu.com/yiten_md5)的结果:常规md5加密($pass)
32位MD5大写:D8E590E6DCD9034CB0206EFDD04A164F
32位MD5小写:d8e590e6dcd9034cb0206efdd04a164f
16位MD5大写:DCD9034CB0206EFD
16位MD5小写:dcd9034cb0206efd
Google 翻译网页功能可以在包括中文和英文的35种语言之间实现整个网页的翻译。当你点击此按钮时,它会自动识别当前网页的语言,把它的内容上传到Google的翻译服务器翻译成用户浏览器设置的语言,,再将翻译结果用原有的网页格式显示出来。这时,该按钮的文字显示会变成“原始网页“,并且会在网页最上端出现一个信息条。如果你想把网页译成其它语言,你可以在信息条上改动翻译语言。另外,你如果点击已翻译网页上的任何链接,并且链接的网页的语言非浏览器设置语言的话,该功能会自动翻译链接网页。你可以点击“原始网页“或者点击信息条上的“X”键关掉信息条,网页就会回到翻译前的状态。另外,Google工具栏还有字词翻译和划词翻译的功能。“翻译网页”图标旁的下拉菜单会显示两种功能的设置,即字词翻译和划词翻译。启用字词翻译功能后,将光标悬停在一个字词上,就能查看其翻译。若启用划词翻译,当你用鼠标高亮一串单词时,会在这些文字旁出现对整串文字的翻译
本翻译器是基于有道智云翻译api实现的翻译器: https://ai.youdao.com因此,需要先上 有道智云 注册一个开发者应用appKey
translator.js