百度通用翻译技术(一)----文档描述

百度通用翻译,摘自官方文档

http://api.fanyi.baidu.com/api/trans/product/apidoc
接入方式
通用翻译API通过HTTP接口对外提供多语种互译服务。您只需要通过调用通用翻译API,传入待翻译的内容,并指定要翻译的源语言(支持源语言语种自动检测)和目标语言种类,就可以得到相应的翻译结果。

通用翻译API HTTP地址:

http://api.fanyi.baidu.com/api/trans/vip/translate

通用翻译API HTTPS地址:

https://fanyi-api.baidu.com/api/trans/vip/translate

您需要向该地址通过POST或GET方法发送下列字段来访问服务

字段名类型必填参数描述备注
qTEXTY请求翻译queryUTF-8编码
fromTEXTY翻译源语言语言列表(可设置为auto)
toTEXTY译文语言语言列表(不可设置为auto)
appidINTYAPP ID可在管理控制台查看
saltINTY随机数
signTEXTY签名appid+q+salt+密钥 的MD5值

签名是为了保证调用安全,使用MD5算法生成的一段字符串,生成的签名长度为 32位,签名中的英文字符均为小写格式

为保证翻译质量,请将单次请求长度控制在 6000 bytes以内。(汉字约为2000个)

签名生成方法如下:

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格式,包含以下字段:

字段名类型描述
fromTEXT翻译源语言
toTEXT译文语言
trans_resultMIXED LIST翻译结果
srcTEXT原文
dstTEXT译文

其中 trans_result 包含了 src 和 dst 字段。

例:将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方法传送需要的参数。

语言列表
源语言语种不确定时可设置为 auto,目标语言语种不可设置为 auto。

语言简写名称
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越南语

错误码列表
当翻译结果无法正常返回时,请参考下表处理:

错误码含义解决方法
52000成功
52001请求超时重试
52002系统错误重试
52003未授权用户检查您的 appid 是否正确,或者服务是否开通
54000必填参数为空检查是否少传参数
54001签名错误请检查您的签名生成方法
54003访问频率受限请降低您的调用频率
54004账户余额不足请前往管理控制平台为账户充值
54005长query请求频繁请降低长query的发送频率,3s后再试
58000客户端IP非法检查个人资料里填写的 IP地址 是否正确可前往管理控制平台修改IP限制,IP可留空
58001译文语言方向不支持检查译文语言是否在语言列表里

各语言DEMO
PHP 版(点击下载)

JS 版(点击下载)

Python 版(点击下载)

C 版(点击下载)

Java 版(点击下载)

常见问题
1. 如何在一次请求中翻译多个单词或者多段文本?

您可以在发送的字段q中用换行符(在多数编程语言中为转义符号 \n )来分隔要翻译的多个单词或者多段文本,这样您就能得到多个单词或多段文本独立的翻译结果了。注意在发送请求之前对q字段做URL encode!

  1. 什么是URL encode?

网络标准RFC 1738规定了URL中只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。如果您需要翻译的文本里面出现了不在该规定范围内的字符(比如中文),需要通过URL encode将需要翻译的文本做URL编码才能发送HTTP请求。大部分编程语言都有现成的URL encode函数,具体使用方法可以针对您使用的编程语言自行搜索。

  1. 为什么我的请求总是返回错误码54001?

54001表示签名错误,请检查您的签名生成方法是否正确。
应该对 appid+q+salt+密钥 拼接成的字符串做MD5得到32位小写的sign。确保要翻译的文本q为UTF-8编码。
注意在生成签名拼接 appid+q+salt+密钥 字符串时,q不需要做URL encode,在生成签名之后,发送HTTP请求之前才需要对要发送的待翻译文本字段q做URL encode。
如果您无法确认自己生成签名的结果是否正确,可以将您生成的签名结果和在https://md5jiami.51240.com/中生成的常规md5加密-32位小写签名结果对比。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值