概述
实现一个翻译功能,中英文的互相转换。并可以播放翻译后的内容。 翻译接口调用的是百度翻译的api接口。
详细
一、需求分析
使用pygame实现一个翻译功能,并可以播放翻译内容。(模仿百度翻译做一个简单的demo)
二、程序实现
1、初始化pygame环境,声明出页面def renderText(text, position, view=screen):
# 设置字体样式大小
my_font = pygame.font.SysFont("SimHei", 25)
# 渲染文字
text = my_font.render(text, True, (255, 255, 255))
view.blit(text, position)
2、利用easygui弹出框实现内容输入import easygui as g
mg = g.enterbox('需要翻译的内容', title='翻译') # 文本输入框
3、将输入的内容显示到页面上def text(self, text):
global inputstr
self.strtext = text
print("验证 输入的内容呀:" + self.strtext)
renderText(self.strtext, (500, 100))
inputstr = self.strtext
print("inputstr:" + inputstr)
4、翻译功能的实现
翻译的实现,主要是向百度的翻译HTTP接口提交数据,然后获得返回,
实现如下:def GetResult(self):
q = self.strtext # 获取输入的内容
# 判断用户是否输入了内容
if q == "":
print("请先输入内容")
self.content.append("")
else:
print("输入的语句:" + q)
url = 'http://api.fanyi.baidu.com/api/trans/vip/translate'
salt = str(random.randint(32768, 65536))
sigin = self._appid + q + salt + self._key
print(sigin)
m1 = hashlib.md5()
m1.update(sigin.encode('utf8'))
sign = m1.hexdigest()
print("加密更新后的:" + sign)
myurl = "" # 防止出现myurl未定义错误
for ch in q.encode('utf8'):
if ch > 127:
myurl = url + '?q=' + urllib.parse.quote(q) +
'&from=' + str(self._to) + '&to=' + str(self._from)+
'&appid=' + str(self._appid) + '&salt=' + str(salt)+
'&sign=' + sign
else:
myurl = url + '?q=' + urllib.parse.quote(q) +
'&from=' + str(self._from) + '&to=' + str(self._to)+
'&appid=' + str(self._appid) + '&salt=' + str(salt)+
'&sign=' + sign
response = requests.get(myurl)
data = response.json()
print(data)
length = len(data['trans_result'])
print(len(data['trans_result']))
print_content = "" # 存放翻译后的内容
for i in range(0, length):
if i == 0: # 防止第一行就出现换行
print_content = data['trans_result'][i]['dst']
else:
pri