场景痛点
日常工作中遇到不认识的英文,通常的做法是复制后使用翻译软件,或者粘贴到网页端。对于 IDE 或浏览器,安装插件或有道划词翻译也能解决问题。但在某些解析对话框或特殊界面中,文本往往无法直接复制,导致上述方法失效。
今天分享一个利用 Python 制作的屏幕翻译小工具,无需复杂配置,随处截图即可翻译,提升办公效率。
核心实现
整个流程主要依赖四个步骤:读取剪贴板图片、OCR 识别文字、调用翻译接口、弹窗显示结果。
1. 环境准备
需要安装以下依赖库:
- Pillow(处理图片)
- pytesseract(OCR 识别)
- googletrans(翻译服务)
- tkinter(GUI 界面)
安装命令如下:
pip install pillow pytesseract googletrans tk
2. 代码逻辑
首先从剪贴板获取截图并保存为临时文件。这里使用 PIL 库的 ImageGrab 模块。
from PIL import ImageGrab
import os
# 从剪贴板读取图片
img = ImageGrab.grabclipboard()
if not img:
print("未检测到剪贴板图片")
exit()
# 保存到本地临时文件
temp_path = './temp.png'
img.save(temp_path)
接着利用 pytesseract 进行 OCR 识别,提取图片中的英文内容。注意确保已安装 Tesseract-OCR 引擎。
import pytesseract
from PIL import Image
# 识别图片中的英文
content_eng = pytesseract.image_to_string(Image.open(temp_path), lang='eng')
为了获得准确的翻译结果,这里调用 googletrans 库连接 Google 翻译接口。
from googletrans import Translator
# 初始化翻译器
translator = Translator(service_urls=['translate.google.cn'])
# 翻译成中文
content_chinese = translator.translate(content_eng, src='en', dest='zh-cn').text
最后,使用 Python 自带的 tkinter 库将翻译结果显示在弹窗中。
tkinter tk
tkinter messagebox
root = tk.Tk()
root.withdraw()
messagebox.showinfo(, content_chinese)


