python制作翻译小软件_利用python制作仿谷歌翻译小软件

很早以前在阅读英文文章时,我们遇到难以理解的句子通常都是打开网页搜索翻译结果,但是就觉得每次需要打开网页好麻烦,所以就打算做一个能够帮助我们阅读英文文章的小软件,甚至是其他语种的文章。

这是我写完运行后的结果,翻译的结果一模一样。至于为什么选择谷歌?谷歌翻译的结果较之其他准确率还是蛮高的。

f1fd157cc8a250588b107b575ba24a9e.png

准备工作

我的python环境是3.7.0

我们需要这么几个库:tkinter、win32clipboard、pyttsx3、requests、json、exects。tkinter和json是python内置模块,而其他的需要我们手动pip安装,如pip install requests。

win32clipboard和exects我们无法直接安装,而是安装pywin32和pyecexjs,因为win32clipboard和exects是pywin32和pyecexjs的一部分。

正式开始

有了上面的工作,我们就可以开始我们的代码了。

我们先从简单的开始,获取剪切板的内容,剪切板的内容就是我们ctrl+c复制的内容。

获取剪切板内容的方法是win32clipboard库中的GetClipboardData()方法

ac915893161c9f00ea169690b42c76c9.png

接下来我们尝试把剪切板里的内容读出来。

engine用来接收pyttsx3.init()函数返回的对象,我们想要达到我们读目的,需要两个方法say()和runAndWait(),这里光是一个say()方法是不能让系统朗读文本的,say()方法需要一个参数,就是我们的文本内容。

getProperty()方法可以获取engine相对应的属性的值,比如语速rate,默认的语速是200,我们可以通过setProperty()方法进行设置。

speakinit函数只是一个返回我们自定义的朗读文本engine对象

d9f26b94b7e7e2f12c805180f1a56f75.png

接下来的工作就是实现翻译的功能。

adaf15a100a246a52b6fb457250becde.png

查看请求头信息,发现是GET请求,URL中的q参数就是我们需要翻译的内容,至于其他参数暂时不知道什么意思就不管了,用requests.get()方法请求,打印请求的结果发现得到了翻译结果,但是我们将q的参数换成别的单词再一次请求发现报了403,请求失败了。

这是我在爬取谷歌翻译是遇到的最大难题,在网上搜到这篇文章解决了我的问题,但是我并没有完全理解,所以就不放代码了。

这是那篇文章的链接 利用python调用谷歌翻译API - 互联网

到此我们的软件只剩下最后的一部分GUI界面。

设置GUI界面很简单,这里就不在赘述,直接上代码。

采用的是tkinter库,也可以用pyqt来制作界面,据说pyqt制作的界面要好看一点。

15849a0996ea23d61123b3ffe894fc08.png

但是我们发现当剪切板的内容发生改变时,显示翻译结果的label_2标签的内容不会发生改变,也就是说目前这个程序无法根据剪切板实时更新的内容进行翻译,所以我们需要定义一个让程序更新的函数。

36733b116a8e04777149a32d7b43c421.png

至此我们的程序已经完成,运行之后就得到了最上面的结果图片,可以根据需要通过pyinstaller将程序进行打包生成exe文件。

以上代码只是部分代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值