自从用Python做了桌面翻译软件,现在对一般的渣渣翻译简直不能忍

《Gone with The Wind》直译的话就是随风而去

1939年,傅东华首译玛格丽格传世巨著 Gone with The Wind,取其消逝与渺茫之意命名为《飘》,自此风行至今:

美丽与勇敢的郝思嘉

风流与执着的白瑞德

坚强与宽容的韩媚兰

儒雅与懦弱的卫希礼——这些名字萦绕在几代人的脑海中,日久弥坚。

1996年,陈良廷再译本书,冠名以电影版之《乱世佳人》,补全傅东华译之删截处,人物名称全部取音译,为爱“飘”之人收藏之另一经典版本。

有很多想要学习Python却找不到途径的朋友,我这里整理了一些关于Python的学习资料,从基础到入门到实战都要。有需要的朋友可以关注并私信“01”免费获取…

《waterloo bridge》直译为滑铁卢桥~

很钢很强势的名字

据说经典爱情电影《魂断蓝桥》最开始时分翻译为《断桥残梦》,意思到位却不够唯美。后来编译组为该片举行了征名活动,一位女士寄去了“魂断蓝桥”的名字,遂成经典。

“蓝桥”的最早传说即我我们熟知的“尾生抱柱”的典故。

《庄子盗跖》:“尾生与女子期于梁下,女子不来,水至不去,抱梁柱而死。”传说他们相约的地方即是“蓝桥”。上片写相爱的恋人被迫分离,下片借用“蓝桥”的典故,透露出词人的相思之苦。这才是优秀的译名嘛!

别看某些年轻人平时都四级六级的,其实背地里都悄悄的装了翻译软件。

Chinglish、How a you已不再是三大姑七大叔那辈的专属,因为当代年轻人已经在中华文化的海洋里徜徉了太久,他们企图在不比划的情况下和长滩岛卖香蕉的小贩砍价,同时也想在爱人面前秀一把。

昨天凌晨1点还照例在抖音上学习美女舞蹈和讲段子的我,偶然看到了一个神级翻译,简直就是良心制作,果然是出自大师的大手笔,连字幕都这么专业,比魂断蓝桥的神翻译有过之而无不及。

如果说电影是八大艺术形式之一

那字幕绝对就是对这门艺术的最真实的解读

再有了谁说英语不好,就不能学好python。有了python,还怕英文不好吗?看我大python如何打造专属于你的翻译软件,不止教会你写,还能教你怎么读,告别哑巴英语。

开发工具:pycharm + python3

所需模块:tkinter + requests+json+pyttsx3

学习内容:python的GUI编程

爬虫

导入python内置的库tkinter

思路分析:

1.先创建界面出来

# 实例化对象,创建一个界面root = Tk()# 设置一个标题root.title('桌面翻译软件')# 给界面设置大小以及显示位置root.geometry('300x100+500+200')# 设置禁止调整大小root.resizable(False,False)# 创建一个标签input_data = Label(root,text='输入内容:',font=('黑体',18),fg='blue')# 标签布局input_data.grid()# 创建输入框entry1 = Entry(root)# 布局显示entry1.grid(row=0,column=1)# 创建第二个标签output_data = Label(root,text='结果:',font=('黑体',18),fg='blue')# 让标签显示output_data.grid(row=1,column=0)# 实例化对象,让输入框的值可以设置res = StringVar()# 创建输入框entry2 = Entry(root,textvariable=res)# 布局,让输入框显示entry2.grid(row=1,column=1)# 定义运行按钮button = Button(root,text='翻译',width=10,command=translate).grid(row=2,column=0)# 定义退出钮button2 = Button(root,text='退出',width=10,command=root.quit).grid(row=2,column=1)# 让界面显示出来 事件循环root.mainloop()

2.开始实现功能

def translate(): # 获取到第一个输入框的内容,去除空白 content = entry1.get().strip()

我们想要实现翻译,直接借用有道翻译,爬取结果就可以了

3分析有道翻译,获取请求URL,请求方式,和必须携带的参数

爬虫需要确定目标,得到结果,获取想要的数据,处理数据

需要安装第三方库

pip install requests

导入库

import requestsimport jsondef translate(): # 获取到第一个输入框的内容,去除空白 content = entry1.get().strip() # 确定目标URL url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule' # 准备发送的数据 data = { 'i':content, 'doctype':'json' } # 定义用户代理 headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0' } # 发起post请求 response = requests.post(url,data=data,headers=headers) # 得到请求结果 ret = response.content.decode() # 转成json格式 result = json.loads(ret) # 去除想要的结果 result = result['translateResult'][0][0]['tgt'] # 在输入框显示 res.set(result)

4.这里已经完成了核心部分,最后来个更叼的效果,读英语,需要一个第三方库

pip install pyttsx3

导入第三方库

import pyttsx3engine = pyttsx3.init()engine.say(result)engine.runAndWait()

最终效果

总体代码:

from tkinter import *import requestsimport jsonimport pyttsx3# pip install pyttsx3def translate(): # 获取到第一个输入框的内容,去除空白 content = entry1.get().strip() # 确定目标URL url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule' # 准备发送的数据 data = { 'i':content, 'doctype':'json' } # 定义用户代理 headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0' } # 发起post请求 response = requests.post(url,data=data,headers=headers) # 得到请求结果 ret = response.content.decode() # 转成json格式 result = json.loads(ret) # 去除想要的结果 result = result['translateResult'][0][0]['tgt'] # 在输入框显示 res.set(result) engine = pyttsx3.init() engine.say(result) engine.runAndWait()# 实例化对象,创建一个界面root = Tk()# 设置一个标题root.title('桌面翻译软件')# 给界面设置大小以及显示位置root.geometry('300x100+500+200')# 设置禁止调整大小root.resizable(False,False)# 创建一个标签input_data = Label(root,text='输入内容:',font=('黑体',18),fg='blue')# 标签布局input_data.grid()# 创建输入框entry1 = Entry(root)# 布局显示entry1.grid(row=0,column=1)# 创建第二个标签output_data = Label(root,text='结果:',font=('黑体',18),fg='blue')# 让标签显示output_data.grid(row=1,column=0)# 实例化对象,让输入框的值可以设置res = StringVar()# 创建输入框entry2 = Entry(root,textvariable=res)# 布局,让输入框显示entry2.grid(row=1,column=1)# 定义运行按钮button = Button(root,text='翻译',width=10,command=translate).grid(row=2,column=0)# 定义退出钮button2 = Button(root,text='退出',width=10,command=root.quit).grid(row=2,column=1)# 让界面显示出来 事件循环root.mainloop()

用python制作翻译软件,让你不再害怕英语

为了让大家也有这么高水准的翻译技能

我连夜给大家写一个快捷方便的翻译软件

为大家学习Chinglish加把力。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年8月3日
下一篇 2019年8月3日

相关推荐