在开发过程中,总会遇到语言翻译的需求,日常的有英语翻译成中文,中文翻译成日语,也有日语翻译成中文和中文翻译成日语的情况。
这里讲讲使用百度翻译API 实现语言翻译的功能的python版本
代码:
# -*- coding: utf-8 -*-
“””
我开发的百度翻译API接口!
使用方法:
r=trans(‘hello’)—翻译英文hello为中文
print r
r=trans(‘你好’,’zh’,’en’)—翻译‘中文’你好为英文
“””
import urllib2
import hashlib
import json
import chardet
#帐号输入
#你要申请一个baidu 翻译api帐号
#网址:注册百度翻译API帐号
trans_id=” ” #APP ID
trans_passworld=” ” #密钥
phone_num=” ” #你用来申请帐号的手机号码
def count(word):
c=0
for i in word:
c+=1
return c
def md5hex(word):
if isinstance(word, unicode):
word = word.encode(“utf-8”)
elif not isinstance(word, str):
word = str(word)
m = hashlib.md5()
m.update(word)
return m.hexdigest()
def trans(word,fr=’en’,to=’zh’):
word_num=count(word)
f=open(‘f:\\trans_count.txt’).read()
old_num=int(f)
if old_num>160000:
print ‘你已经使用了大于160万个字符!’
else:
print ‘你已经使用’+f+’个字符!’
f=open(‘f:\\trans_count.txt’,’w+’)
new_num=word_num+old_num
f.write(str(new_num));f.close()
del old_num,word_num
sign=md5hex(trans_id+word+phone_num+trans_passworld)
api=’http://api.fanyi.baidu.com/api/trans/vip/translate?q=’+word+’&from=’+fr+’&to=’+to+’&appid=20160802000026139&salt=’+phone_num+’&sign=’+sign
trans_data=urllib2.urlopen(api).read()
trans_data=json.loads(trans_data)
trans_data=trans_data[‘trans_result’][0][‘dst’]
return trans_data
#编码方式
#trans(‘hello’).encode(‘utf-8’)
”’
from,to 字母的代表! – 语言id
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 繁体中文
”’