懒人翻译

简介: 前言编码演示总结前言越来越懒了,懒到不想动动鼠标打开翻页网页的界面。尤其是在不一个IDE下,更不想切换了。Chrome浏览器有翻译插件,但是不能自动翻译PDF上的英文; Eclipse可以很方便的查看源码,但是不能自动翻译单词的含义;总的来说吧,可以归结为两个方面。

前言

越来越懒了,懒到不想动动鼠标打开翻页网页的界面。尤其是在不一个IDE下,更不想切换了。

Chrome浏览器有翻译插件,但是不能自动翻译PDF上的英文;
Eclipse可以很方便的查看源码,但是不能自动翻译单词的含义;

总的来说吧,可以归结为两个方面。

  • 一是我太懒,多动几下鼠标又死不了人╭(╯^╰)╮。
  • 二是我英语还有待提升,提上到不用翻译软件就好了。

最后呢,我还是懒得多点那几下鼠标,拷贝粘贴,英语水平也没能到不用翻译就能看懂的地步。

于是我写了个懒人工具,减少鼠标的操作。能少点几下就少点几下。能少按键就少按键。

编码

代码其实很简单的。思路更是清晰。

  • 获取电脑剪切板的内容。
  • 交给翻译接口,获取返回结果。
  • 将结果交给电脑,调用win32api,弹出对话框。
# coding: utf8
import win32clipboard as wc
import win32con

## win32api
import win32api

import sys
from random import randint
import time


from urllib2 import *
from urllib import quote
import json

def getCopyText():
    wc.OpenClipboard()
    copytext = wc.GetClipboardData(win32con.CF_TEXT)
    wc.CloseClipboard()
    return str(copytext)

def getTransText(rawtext):
    translate_url = "http://fanyi.baidu.com/v2transapi?query=%s"%quote(rawtext)
    data = urlopen(translate_url).read()
    data = json.loads(data)
    return data['trans_result']['data'][0]['dst']

if __name__ == '__main__':
    second = sys.argv[1] if sys.argv[1] else 3
    while True:
        time.sleep(int(second))
        try:
            rawtext = getCopyText()
            transtext = getTransText(rawtext)
            # show the details info.
            title = rawtext + "\' s translation result "
            win32api.MessageBox(0, transtext, title, win32con.MB_OK)
        except Exception as e:
            print 'Something is wrong, maybe your text is too long.'
            print "-----------------------------------------"
            continue
        print transtext
        print "-----------------------------------------"

演示

使用起来也很简单。如下:

python trans.py seconds

这个seconds就是你想让这段代码多长时间工作一次。

只要你复制了一些内容到了电脑的剪切板中,这段脚本就能每隔seconds秒,帮你查询翻译的结果。还可以翻译句子哦。

使用效果截图

总结

最后来总结一下,这个工具哪里还能改进一下。

轮询的方式稍微有点消耗计算资源,可以尝试着使用信号量,每当剪切板中有了数据,就触发翻译事件,再来显示翻译结果。

其次就是改进一下编码,我这边因为是自己用,所以没有添加注释,但是这确实是不对的。引以为戒好了。

目录
相关文章
|
6天前
|
人工智能 Docker 索引
推荐一个双语对照的 PDF 翻译工具的开源项目:PDFMathTranslate
今天给大家推荐一个**双语对照的 PDF 翻译工具**的开源项目:PDFMathTranslate 。
67 26
推荐一个双语对照的 PDF 翻译工具的开源项目:PDFMathTranslate
|
API UED Python
用python开发文本翻译小软件
用python开发文本翻译小软件
212 0
|
缓存 程序员 API
【翻译】阅读优秀的代码
【翻译】阅读优秀的代码
100 0
|
API Python
03 奇妙的Python库之【googletrans(翻译)】
03 奇妙的Python库之【googletrans(翻译)】
|
JavaScript 前端开发 程序员
英语翻译太难?我一怒之下写了两个翻译脚本
它来了!它来了!作为一名程序员,英语句子不会翻译,这我不能忍,必须安排脚本!!!
158 1
英语翻译太难?我一怒之下写了两个翻译脚本
|
Web App开发 缓存 网络协议
【翻译工具】如何复活谷歌翻译(网页翻译)
【翻译工具】如何复活谷歌翻译(网页翻译)
971 0
【网站翻译】【小牛翻译】【个人博客】嚯?我的博客网站没有翻译功能也能翻译了?一段代码给自己的博客网站添加多一份翻译~
【网站翻译】【小牛翻译】【个人博客】嚯?我的博客网站没有翻译功能也能翻译了?一段代码给自己的博客网站添加多一份翻译~
280 0
【网站翻译】【小牛翻译】【个人博客】嚯?我的博客网站没有翻译功能也能翻译了?一段代码给自己的博客网站添加多一份翻译~
|
前端开发 Java 测试技术
【翻译】- EffectiveAkka-第二章(一)
Actor使用模式   现在我们已经了解了可以创建的actor系统的不同类型,那么我们在编写基于actor的应用程序时,可以采用什么样的使用模式,以便避免出现常见错误呢? 下面就让我们看看其中使用模式。
1083 0
|
自然语言处理 Java 测试技术
使用现有在线翻译服务进行代码翻译的体验
使用谷歌, 百度, 有道等在线翻译服务对代码进行翻译并比较效果. Use online translation service, including Google, baidu, youdao, etc. to translate source code and compare results.
1061 0
|
机器学习/深度学习 自然语言处理

热门文章

最新文章