一个简单的划词翻译工具

article/2025/10/6 7:58:34

一个简单的划词翻译工具


  看论文时经常要翻译,然而手动复制粘贴到翻译网站上又很麻烦,有些划词翻译工具比如有道的划词和取词,虽然不用按快捷键只选中文本就能翻译,但有时也会失灵什么的,于是就自己用python写了个调用百度翻译api的翻译脚本,翻译结果和百度翻译网站上的一模一样,感觉挺方便的。


效果

  • 通过鼠标选择文本后,按下快捷键可以快速英汉互译,通过弹窗显示结果,其中汉译英需要满足第一个字是汉字
  • 会自动复制翻译结果到剪切板中,按ctrl+v也可以显示文本
  • 若不选择任何文本,则会翻译最近的剪切板中的文字,也就是说,连续按两下快捷键会先翻译成中文,再翻译成英文,或反过来。(这个操作简直是写论文避重的神器?)
    划词翻译

需求

  • 需求python3,安装库pyperclip和pyautogui
    • 下载安装python3
    • pip install pyperclip
    • pip install pyautogui
  • Windows中需要AutoHotkey软件
  • 去百度翻译开放平台注册账号,将下面的代码块命名为translate.py并在18和20行中输入appid和secretkey

  注意下面被{}括起来的表示文件的绝对位置,需要替换


Windows系统中

  • 下载安装AutoHotkey
  • 新建 translate.ahk \text{translate.ahk} translate.ahk, 填入下面代码,双击运行即可
#z:: Run %ComSpec% /c "python {translate.py}", , Hide
  • #z代表快捷键为Win+z,#代表Win键,目前这个快捷键组合好像没什么冲突,按着也方便。若要改其他快捷键,可参考符号如下
符号按键
#Win
^Ctrl
!Alt
+Shift
  • 另外,将 translate.ahk \text{translate.ahk} translate.ahk放入Windows的启动文件夹,可设置开机启动
    • 启动文件夹一般是在C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Linux或Mac系统中

  • 自定义快捷键,内容为 python {translate.py} \text{python \{translate.py\}} python {translate.py}

translate.py \text{translate.py} translate.py

import pyperclip
import pyautogui
import random
import json
from http import client
from hashlib import md5
from urllib.parse import quotepyautogui.hotkey('ctrl', 'c')
sentence = pyperclip.paste()
sentence = sentence.replace('\n', ' ')
fromLang = 'auto'
if sentence[0] >= u'\u4e00' and sentence[0] <=u'\u9fa5':toLang = 'en'
else:toLang = 'zh'
# enter your appid
appid = '' 
# enter your secretkey
secretKey = '' 
myurl = '/api/trans/vip/translate'
salt = random.randint(32768, 65536)
sign = appid+sentence+str(salt)+secretKey
m1 = md5(sign.encode(encoding='utf-8'))
sign = m1.hexdigest()
myurl = myurl+'?appid='+appid+'&q='+ quote(sentence)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+sign
try:httpClient = client.HTTPConnection('api.fanyi.baidu.com')httpClient.request('GET', myurl)response = httpClient.getresponse()result = response.read()result = json.loads(result)['trans_result'][0]['dst']
except:result = 'Non-networked'
finally:if httpClient:httpClient.close()
try:# pyperclip.copy('api.fanyi.baidu.com/' + myurl)pyperclip.copy(result)pyautogui.alert(result,  title='Result')
except:pass

http://chatgpt.dhexx.cn/article/8hxDP49u.shtml

相关文章

安装侧边翻译,划词翻译,看外文论文神器,比知云还好用Edge Translate

前言 写论文相信大家参考的大多数都是外文文献&#xff0c;但是想我这样英文水平不佳的小伙伴还是比较多的&#xff0c;所以看外文文献就很费劲。 有的小伙伴用谷歌或者百度翻译 一边复制翻译一边看&#xff0c; 后来用知云翻译方便的很多&#xff0c;但是每次…

论文阅读利器——划词翻译插件(桌面与浏览器)

对于喜爱学习&#xff0c;阅读文献的各位来说&#xff0c;满屏的英文字母常常会磨灭我们的热情&#xff0c;而一般的翻译软件又有些贵&#xff0c;或者是根本没有很好的效果。 那么&#xff0c;今天&#xff0c;在这里介绍几款开源的插件与软件。都是可以免费使用的。 一、Edg…

5个超好用的屏幕划词翻译软件,选中文字就能翻译

分享5个划词翻译工具&#xff0c;支持翻译多种语言&#xff0c;并且有多种翻译源和词典可以选择&#xff01; 一、划词翻译插件 1、Talent划词翻译 一个好用的划词翻译插件&#xff0c;支持Chrome、Edge、360等主流浏览器&#xff0c;安装之后选中词汇或者短句就会自动进行翻译…

递归算法整理合集

递归算法整理合集 ​递归是常见的算法和编程思想&#xff0c;也是初学者几乎最早接触的算法思想之一。递归算法的优点是代码简洁清晰&#xff0c;逻辑简单易懂&#xff1b;缺点一是算法运行复杂度较高&#xff0c;二是容易在具体代码实现的时候调用栈的层次考虑不周&#xff0…

【关于递归算法的讲解】

递归算法 递归算法的思想 利用递归求解问题的三个特性 递归算法求解的执行过程 递推关系 递归算法的应用举例 小结 递归算法 递归算法是一种通过自身调用自身或间接调用自身来达到问题解决的算法。递归的基本思想是把一个要求解的问题划分成一个或多个规模更小的子问题…

递归算法即案例

递归&#xff08;recursion&#xff09;&#xff1a;程序调用自身的编程技巧。 递归满足2个条件&#xff1a; 1. 有反复执行的过程&#xff08;调用自身&#xff09; 2. 有跳出反复执行过程的条件&#xff08;递归出口&#xff09; 项目中用到递归案例 递归读取文件获取字典…

【递归算法】递归算法的快速入门

&#x1f40b;作者简介&#xff1a;博主是一位.Net开发者&#xff0c;同时还是RPA和低代码平台的践行者。 &#x1f42c;个人主页&#xff1a;会敲键盘的肘子 &#x1f430;系列专栏&#xff1a;数据结构与算法 &#x1f980;专栏简介&#xff1a;图解经典算法&#xff0c;C#代…

递归算法详细解析

递归 程序调用自身的编程技巧称为递归&#xff08; recursion&#xff09;&#xff0c;它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。一般来说&#xff0c;递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时&#xff0c;递归前…

递归算法详解

递归&#xff08;英语&#xff1a;recursion&#xff09;在电脑科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。 0、前言 递归其实和循环是非常像的&#xff0c;循环都可以改写成递归&#xff0c;递归未必能改写成循环&#xff0c;这是一个充分不必要的条…

递归算法及经典递归实现

递归 递归就是方法自己调用自己&#xff0c;每次调用时传入不同的变量&#xff0c;递归有助于编程者解决复杂的问题&#xff0c;同时可以让代码变得简洁。 递归&#xff1a; 在定义自身的同时又出现了对自身的调用 直接递归函数&#xff1a; 在定义函数体中直接调用自己 间接…

递归算法讲解

原作者&#xff1a;书呆子Rico 《递归的内涵与经典应用》 http://my.csdn.net/justloveyou_ 摘要&#xff1a; 大师 L. Peter Deutsch 说过&#xff1a;To Iterate is Human, to Recurse, Divine.中文译为&#xff1a;人理解迭代&#xff0c;神理解递归。毋庸置疑地&#xff0…

递归算法及经典实例----转载啦~

递归算法及经典递归例子代码实例 递归&#xff08;recursion&#xff09;&#xff1a;程序调用自身的编程技巧。 递归满足2个条件&#xff1a; 1&#xff09;有反复执行的过程&#xff08;调用自身&#xff09; 2&#xff09;有跳出反复执行过程的条件&#xff08;递归出…

递归算法的讲解

原作者&#xff1a;书呆子Rico 《递归的内涵与经典应用》 http://my.csdn.net/justloveyou_ 摘要&#xff1a; 大师 L. Peter Deutsch 说过&#xff1a;To Iterate is Human, to Recurse, Divine.中文译为&#xff1a;人理解迭代&#xff0c;神理解递归。毋庸置疑地&#xff0…

递归算法经典例题及详解

有句话叫递归算法只可意会不可言传&#xff0c;我也领略了&#xff0c;感觉递归算法好神奇&#xff0c;不知不觉的就把工作做完了! 下面这道题也是小编从力扣上看来得&#xff0c;但是关于它是怎样递归的是小编自己想的哦❤️❤️如果有不足&#xff0c;希望大家多多指正&#…

递归算法及经典递归例子代码实现

一、什么叫做递归&#xff1f; 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法&#xff1b; 递归函数就是直接或间接调用自身的函数&#xff0c;也就是自身调用自己&#xff1b; 二、一般什么时候使用递归&#xff1f; 递归时常用的编程技术&#xff0c;其基本…

递归算法(图文详解)

递归算法 一、算法概述 递归算法是一种直接或者间接调用自身函数或者方法的算法。说简单了就是程序自身的调用。二、算法实质 递归算法就是将原问题不断分解为规模缩小的子问题&#xff0c;然后递归调用方法来表示 问题的解。&#xff08;用同一个方法去解决规模不同的问题&am…

递归算法及经典例题详解

大部分人在学习编程时接触的第一个算法应该就是递归了&#xff0c;递归的思想其实很好理解&#xff0c;就是将一个问题拆分为若干个与本身相似的子问题&#xff0c;通过不断调用自身来求解。 但很多新手在实际操作中却很难正确使用到递归&#xff0c;有时面对问题还会有种无从…

几道经典递归算法案例

一&#xff09;递归介绍 定义&#xff1a; 1、在函数体中直接或间接的调用自身的一种方法。 2、必须要有边界值&#xff0c;也就是停止的条件。 头递归&#xff1a;函数调用时不是传递本次计算的结果&#xff0c;而是把当前的调用状态传递&#xff0c;相当于要一直记录上一…

【函数递归】简单递归的5个经典例子,你都会吗?

&#x1f9f8;&#x1f9f8;&#x1f9f8;各位巨佬大家好&#xff0c;我是猪皮兄弟&#x1f9f8;&#x1f9f8;&#x1f9f8; 今天和大家谈谈简单递归&#x1f973;&#x1f973;&#x1f973; &#x1f692;什么是递归 递归的定义&#xff1a; 递归是一种解决问题的有效方…

四个超好用的优质资源搜索网站,海量优质资源等你发现!

在网上找资源的时候总找不到满意的优质资源&#xff1f;今天小编把办公室大佬珍藏多年的四个超好用优质资源搜索网站分享给你&#xff0c;只要你想找&#xff0c;没有找不到的资源&#xff01; 一&#xff0c;学习资料库 学习资料库中有大量的免费学习资料&#xff0c;学习资料…