懶人翻譯神器

前言

越來越懶了,懶到不想動(dòng)動(dòng)鼠標(biāo)打開翻頁網(wǎng)頁的界面。尤其是在不一個(gè)IDE下,更不想切換了。

Chrome瀏覽器有翻譯插件,但是不能自動(dòng)翻譯PDF上的英文;
Eclipse可以很方便的查看源碼,但是不能自動(dòng)翻譯單詞的含義;

總的來說吧,可以歸結(jié)為兩個(gè)方面。

  • 一是我太懶,多動(dòng)幾下鼠標(biāo)又死不了人╭(╯^╰)╮。
  • 二是我英語還有待提升,提上到不用翻譯軟件就好了。

最后呢,我還是懶得多點(diǎn)那幾下鼠標(biāo),拷貝粘貼,英語水平也沒能到不用翻譯就能看懂的地步。

于是我寫了個(gè)懶人工具,減少鼠標(biāo)的操作。能少點(diǎn)幾下就少點(diǎn)幾下。能少按鍵就少按鍵。

編碼

代碼其實(shí)很簡單的。思路更是清晰。

  • 獲取電腦剪切板的內(nèi)容。
  • 交給翻譯接口,獲取返回結(jié)果。
  • 將結(jié)果交給電腦,調(diào)用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

這個(gè)seconds就是你想讓這段代碼多長時(shí)間工作一次。

只要你復(fù)制了一些內(nèi)容到了電腦的剪切板中,這段腳本就能每隔seconds秒,幫你查詢翻譯的結(jié)果。還可以翻譯句子哦。

使用效果截圖
使用效果截圖

總結(jié)

最后來總結(jié)一下,這個(gè)工具哪里還能改進(jìn)一下。

輪詢的方式稍微有點(diǎn)消耗計(jì)算資源,可以嘗試著使用信號量,每當(dāng)剪切板中有了數(shù)據(jù),就觸發(fā)翻譯事件,再來顯示翻譯結(jié)果。

其次就是改進(jìn)一下編碼,我這邊因?yàn)槭亲约河?,所以沒有添加注釋,但是這確實(shí)是不對的。引以為戒好了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容