百度翻译API通过HTTP接口对外提供多语种互译服务。您只需要通过调用百度翻译API,传入待翻译的内容,并指定要翻译的源语言(支持源语言语种自动检测)和目标语言种类,就可以得到相应的翻译结果。
翻译API HTTP地址:http://api.fanyi.baidu.com/api/trans/vip/translate
您需要向该地址通过POST或GET方法发送下列字段来访问服务
字段名 类型 必填参数 描述 备注
q TEXT Y 请求翻译query UTF-8编码
from TEXT Y 翻译源语言 语言列表(可设置为auto)
to TEXT Y 译文语言 语言列表(不可设置为auto)
appid INT Y APP ID 可在管理控制台查看
salt INT Y 随机数
sign TEXT Y 签名 appid+q+salt+密钥 的MD5值、
1、将请求参数中的 APPID(appid), 翻译query(q, 注意为UTF-8编码), 随机数(salt), 以及平台分配的密钥(可在管理控制台查看)
按照 appid+q+salt+密钥 的顺序拼接得到字符串1。
2、对字符串1做md5,得到32位小写的sign。
注意:
1、请先将需要翻译的文本转换为UTF-8编码
2、在发送HTTP请求之前需要对各字段做URL encode。
3、在生成签名拼接 appid+q+salt+密钥 字符串时,q不需要做URL encode,在生成签名之后,发送HTTP请求之前才需要对要发送的待翻译文本字段q做URL encode。
返回结果是json格式,包含以下字段:
字段名 类型 描述
from TEXT 翻译源语言
to TEXT 译文语言
trans_result MIXED LIST 翻译结果
src TEXT 原文
dst TEXT 译文
例:将apple从英文翻译成中文:
请求参数:
q=apple
from=en
to=zh
appid=2015063000000001
salt=1435660288
平台分配的密钥: 12345678
生成sign:
拼接字符串1
拼接appid=2015063000000001+q=apple+salt=1435660288+密钥=12345678
得到字符串1 =2015063000000001apple143566028812345678
计算签名sign(对字符串1做md5加密,注意计算md5之前,串1必须为UTF-8编码)
sign=md5(2015063000000001apple143566028812345678)
sign=f89f9594663708c1605f3d736d01d2d4
完整请求为:
http://api.fanyi.baidu.com/api/trans/vip/translate?q=apple&from=en&to=zh&appid=2015063000000001&salt=1435660288&sign=f89f9594663708c1605f3d736d01d2d4
也可以使用POST方法传送需要的参数。
当翻译结果无法正常返回时,请参考下表处理:
百度支持一下语言的翻译:
下面贴上代码:
首先,一定不要忘记在AndroidMainfest.xml里添加访问网络的权限:
final String data;
//注意!与网络相关的操作要开启新的线程,不要早UI线程中进行,否则会出现
//android.os.NetworkOnMainThreadException异常
new Thread(new Runnable() {
String qString =