一个简洁好用的程序
前言
- 因为要阅读英文文档,奈何我英文水平属于“32级”那种。所以每次都把不会的单词或句子,复制粘贴到输入框,严重拖慢我的效率,网页全文翻译感觉不妥,会弱化我的英文水平,也不想额外下载软件了。
- 所以自己写了个简洁的翻译程序,全部代码不超过100行,当然是调用大厂的的接口哈。
效果
- 下面看下效果。比如我想阅读
Spring Security
的文档。https://docs.spring.io/spring-security/reference/index.html
- 有2个接口,谷歌和有道。
- 把需要翻译的英文
Ctrl + c
,下个如下图所示。
- 这里我还使用了
DeskPins
,把翻译程序置顶。下载地址https://efotinis.neocities.org/deskpins/。或者https://sourceforge.net/projects/generic-software/files/DeskPins/ - 使用时,鼠标左键点击
DeskPins
程序图标。 - 然后鼠标变成红色针头,再点击下要置顶的程序,就完成置顶了,然后 就会出现红色针头的东西,如下图所示。
- 当然,你如果是双屏的那就更完美了。
代码实现
-
1、使用
pyperclip
模块获取剪贴板内容。 -
2、根据输入调用不同的API接口。
-
3、保存这次翻译的内容,避免重复调用接口。
-
4、如果翻译失败了,自动重试。
-
核心代码
def youdao_api(keyword):
'''
有道翻译
@param keyword
'''
try:
api = 'http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i=' + keyword
res = requests.get(api, headers=headers, timeout=20)
# print(res.text)
translateResult = json.loads(res.text)['translateResult']
for items in translateResult:
for item in items:
print(item['src'])
print(item['tgt'])
except BaseException as ex:
print('出现错误: ')
print(ex)
raise RuntimeError('有道翻译失败了')
finally:
print("\n--------------------------------")
def google_api(keyword):
'''
谷歌翻译
@param keyword
'''
try:
api = 'https://translate.google.cn/translate_a/single?client=gtx&dt=t&dj=1&ie=UTF-8&sl=auto&tl=zh-CN&q=' + keyword
res = requests.get(api, headers=headers, proxies=proxies, timeout=20)
# print(res.text)
sentences = json.loads(res.text)['sentences']
for item in sentences:
print(item['orig'])
print(item['trans'])
except BaseException as ex:
print('出现错误: ')
print(ex)
raise RuntimeError('谷歌翻译失败了')
finally:
print("\n--------------------------------")
- 完整代码:https://github.com/1030907690/public-script/blob/master/generic/translate.py,觉得有用的话,求给个Star。
- exe程序:https://github.com/1030907690/public-script/blob/master/generic/translate.exe