求 JS 百度翻译API 示例 谁能给我一个..

JavaScript012

求 JS 百度翻译API 示例 谁能给我一个..,第1张

这段时间研究一下百度翻译API,结果发现新版的百度翻译较以前的有了很大的变化:

旧版百度翻译的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