一个简洁好用的程序

前言

  • 因为要阅读英文文档,奈何我英文水平属于“32级”那种。所以每次都把不会的单词或句子,复制粘贴到输入框,严重拖慢我的效率,网页全文翻译感觉不妥,会弱化我的英文水平,也不想额外下载软件了。
  • 所以自己写了个简洁的翻译程序,全部代码不超过100行,当然是调用大厂的的接口哈。

效果

  • 下面看下效果。比如我想阅读Spring Security的文档。https://docs.spring.io/spring-security/reference/index.html
  • 有2个接口,谷歌和有道。
  • 把需要翻译的英文Ctrl + c,下个如下图所示。

在这里插入图片描述

代码实现

  • 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--------------------------------")

参考

posted on 2022-05-27 08:47  愤怒的苹果ext  阅读(37)  评论(0编辑  收藏  举报

导航