Skip to content

Commit 7da7d3a

Browse files
authored
Merge pull request #5 from 588585/TryFixShortcutKeys
大更新
2 parents 5d22302 + 57d72d4 commit 7da7d3a

6 files changed

Lines changed: 370 additions & 38 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,3 +179,5 @@ secret.*
179179
*.exe
180180
temp*.*
181181
*.wav
182+
183+
todo.md

README.md

Lines changed: 148 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,19 @@
1616

1717
## ✨ 核心功能
1818

19-
- 🚀 **开箱即用**:无需安装,也无需配置环境,直接运行。
19+
- 🚀 **开箱即用**:无需安装,也无需配置环境,直接运行。自动创建默认配置文件。
2020
- 🛸 **卡片式悬浮窗**:左键可以任意拖动,点击周围即可关闭。左键点击切换原文和译文,右键点击可以将弹窗切换为“可选择”模式。
21-
- 📸 **截屏翻译**:快速截图识别 + 翻译(基于 [pytesseract](https://github.com/madmaze/pytesseract))。
21+
- 📸 **截屏翻译**:快速截图识别 + 翻译(基于 [pytesseract](https://github.com/madmaze/pytesseract),支持多屏幕
2222
- 📋 **复制翻译**:复制即翻译,提升阅读效率。
23-
- 💎 **词典翻译**:翻译单个词语(或短语)时,首选调用词典翻译,直接查询本地词典,包含690000个单词或短语(基于[ECDICT](https://github.com/skywind3000/ECDICT))。
23+
- 💎 **词典翻译**:翻译单个词语(或短语)时,调用词典翻译,直接查询本地词典,包含690000个单词或短语(基于[ECDICT](https://github.com/skywind3000/ECDICT))。
2424
- 🧠 **离线翻译**:翻译段落或句子时,集成深度学习翻译引擎(基于 [Argos Translate](https://github.com/argosopentech/argos-translate))。
2525
- 🐧 **腾讯翻译**:翻译段落或句子时,假如联网,还能调用腾讯翻译(每月500万字免费,含标点,默认设置下超出不偷偷扣费),自动优化翻译结果。
26+
- 🤖 **DeepSeek API翻译**:支持接入DeepSeek API进行翻译,可自定义翻译提示词,提供高质量翻译。
2627
- 💨 **中文改写英文**:选中一段可编辑的中文文本,按下快捷键,就可以直接将其改为英文,并且剪贴板同步修改。假如要用英文关键词搜索、回帖,非常方便。此功能必须联网使用。
2728
- 🚗 **关键性能**:占用磁盘约800M、内存700M。翻译单词可瞬时出结果;翻译段落时,首次翻译延时约3秒、之后每次延时约1秒。
29+
- 🔍 **调试功能**:提供详细的翻译过程调试信息输出。
2830

29-
\* *使用教程及快捷键配置见`config.ini`,如不习惯可自行修改*
31+
* *使用教程及快捷键配置见`config.ini`,如不习惯可自行修改*
3032

3133
## 💯 翻译质量测评
3234

@@ -63,22 +65,34 @@
6365
- 中文 ➝ 英文的SCI写作级超高质量翻译(通常使用聊天机器人)。
6466
- 英文 ➝ 非中文 翻译(本人只使用中文)。
6567
- 排斥使用快捷键的用户,部分功能只能快捷键触发。
66-
- 受限于开发条件,暂时不支持多屏幕(需要帮助)。
6768
- 非Windows 10 / 11的操作系统。
6869

6970
## 👣 安装步骤
7071

7172
1.[发行版](https://github.com/eee555/LingZero/releases)下载最新版,解压后放到合适的位置。
7273
2. 打开LingZero文件夹,打开config.ini,按照习惯的配置自行修改键位。
7374
3. 【推荐】右键`translation.exe`,点击`显示更多选项`->`固定到任务栏`
74-
4. 【可选】假如要使用腾讯翻译,打开"secret.ini"文件如下,前往[腾讯云官网](https://console.cloud.tencent.com/cam/capi)免费领取个人令牌,并填写在文件中。
75-
```
75+
4. 【可选】配置翻译API(腾讯翻译或DeepSeek API):
76+
- **腾讯翻译**:打开"secret.ini"文件,前往[腾讯云官网](https://console.cloud.tencent.com/cam/capi)免费领取个人令牌,并填写在文件中。
77+
- **DeepSeek API**:在"secret.ini"文件中添加 `deepseek_api_key` 字段,填入您的DeepSeek API Key,并在config.ini中自定义翻译提示词。
78+
79+
```ini
7680
[DEFAULT]
77-
tencent_secret_id = A*********************************ZO
81+
tencent_secret_id = A*********************************ZO
7882
tencent_secret_key = e******************************p
7983
tencent_region = ap-shanghai
84+
deepseek_api_key =
8085
```
8186

87+
## 🔧 deepseek 提示词推荐
88+
89+
1. 请将以下英文文本翻译成中文,保持原意不变,尽量简洁。
90+
2. 请将以下英文文本翻译成中文,保持原意不变,对于专业名词和缩写,保持原有的英文名称。
91+
3. 专注于意译翻译,旨在捕捉不仅仅是文字,而是背后的意义和语调。确保在目标语言中传达原文的精髓,确保文化细微差别和隐含意义不会在翻译中丢失。
92+
4. 请将以下英文文本翻译成中文,保持原意不变,尽量简洁,并将英文关键词保留并在括号中显示中文翻译,帮助用户加深对词汇的记忆。
93+
5. 老铁,把下面这段洋文给我整成东北话,意思别整岔劈了,能省字儿就省字儿,听着得劲儿就行!
94+
6. 你是一个英语阅读助手。假设你的用户雅思成绩为5分。当用户发送文本时,请为文本中你认为用户可能感到困惑的单词和短语提供中文注释。注释应包含单词原文、音标和翻译。使用以下格式:单词 /音标/ 翻译
95+
8296
## 📈 效果展示
8397

8498
- 截屏翻译大段段落
@@ -91,5 +105,131 @@ tencent_region = ap-shanghai
91105

92106
- UI 优化,根据文档背景颜色,自动调整窗口背景颜色
93107
- 接入百度、谷歌、阿里巴巴等翻译api
108+
- 钩子定时重启
109+
- 拆分功能
110+
- 统一设置页面
111+
- 翻译优先级调整
112+
- 修复多屏幕拖动时被windos调整大小的bug
113+
- 完整的多屏幕(跨屏幕)支持
114+
- 自定义字体
115+
- 看看底下项目依赖信息有啥不需要的给它去掉
116+
117+
118+
119+
# 项目依赖信息
120+
121+
## Python 环境信息
122+
123+
### 虚拟环境
124+
- **虚拟环境位置**: `c:\Users\jim\git\LingZero\.venv`
125+
- **Python 版本**: 3.12.0
126+
- **pip 版本**: 25.3
127+
128+
## 核心依赖包(此为我的依赖,实际上可以精简)
129+
130+
| 包名 | 版本 | 用途 |
131+
|------|------|------|
132+
| **PySide6** | 6.10.1 | Qt for Python - 跨平台 GUI 框架,用于创建桌面应用程序 |
133+
| **PySide6_Addons** | 6.10.1 | PySide6 附加组件,提供额外的功能扩展 |
134+
| **PySide6_Essentials** | 6.10.1 | PySide6 核心组件包,包含基础功能 |
135+
| **shiboken6** | 6.10.1 | PySide6 的 C++ 绑定工具,用于 Python 和 C++ 代码互操作 |
136+
| **pytesseract** | 0.3.13 | OCR 光学字符识别库,用于识别图像中的文字 |
137+
| **Pillow** | 12.1.0 | 图像处理库,用于图像加载、处理和保存 |
138+
| **pynput** | 1.8.1 | 键盘和鼠标控制库,用于监控和控制输入设备 |
139+
| **keyboard** | 0.13.5 | 键盘事件监听和控制库,提供键盘操作接口 |
140+
| **argostranslate** | 1.10.0 | 机器翻译库,支持多种语言互译 |
141+
| **pyperclip** | 1.11.0 | 剪贴板操作库,用于读取和写入剪贴板内容 |
142+
143+
## 翻译引擎相关依赖
144+
145+
| 包名 | 版本 | 用途 |
146+
|------|------|------|
147+
| **spacy** | 3.8.11 | 自然语言处理库,用于文本处理和分析 |
148+
| **spacy-legacy** | 3.0.12 | SpaCy 旧版本兼容性支持 |
149+
| **spacy-loggers** | 1.0.5 | SpaCy 日志记录工具 |
150+
| **thinc** | 8.3.10 | SpaCy 使用的深度学习库,用于自然语言处理任务 |
151+
| **stanza** | 1.10.1 | 斯坦福大学开发的自然语言处理工具包 |
152+
| **ctranslate2** | 4.6.3 | 高效的神经机器翻译库 |
153+
| **torch** | 2.9.1 | PyTorch 深度学习框架,用于训练和推理神经网络 |
154+
| **sacremoses** | 0.1.1 | Moses 机器翻译工具的 Python 实现 |
155+
| **sentencepiece** | 0.2.1 | 句子分词工具,用于处理多语言文本 |
156+
157+
## 基础依赖库
158+
159+
| 包名 | 版本 | 用途 |
160+
|------|------|------|
161+
| **numpy** | 2.4.1 | 数值计算库,提供数组和矩阵运算支持 |
162+
| **Pillow** | 12.1.0 | 图像处理库(重复项,核心依赖中已列出) |
163+
| **requests** | 2.32.5 | HTTP 请求库,用于与网络服务交互 |
164+
| **PyYAML** | 6.0.3 | YAML 文件解析库,用于配置文件处理 |
165+
| **Jinja2** | 3.1.6 | 模板引擎,用于生成 HTML、XML 等文档 |
166+
| **MarkupSafe** | 3.0.3 | 安全字符串处理库,用于防止 XSS 攻击 |
167+
| **protobuf** | 6.33.3 | Protocol Buffers 序列化库,用于数据交换 |
168+
| **pydantic** | 2.12.5 | 数据验证库,用于类型注解和数据校验 |
169+
| **pydantic_core** | 2.41.5 | Pydantic 的核心实现库 |
170+
171+
## 工具和辅助库
172+
173+
| 包名 | 版本 | 用途 |
174+
|------|------|------|
175+
| **tqdm** | 4.67.1 | 进度条库,用于显示任务执行进度 |
176+
| **colorama** | 0.4.6 | 控制台颜色输出库,用于美化控制台显示 |
177+
| **emoji** | 2.15.0 | 表情符号处理库,支持 emoji 字符操作 |
178+
| **click** | 8.3.1 | 命令行接口创建库,用于构建 CLI 应用程序 |
179+
| **urllib3** | 2.6.3 | HTTP 客户端库,提供高级网络功能 |
180+
| **charset-normalizer** | 3.4.4 | 字符编码检测和转换库 |
181+
| **idna** | 3.11 | 国际域名系统 (IDN) 处理库 |
182+
| **certifi** | 2026.1.4 | CA 证书库,用于 SSL 证书验证 |
183+
| **packaging** | 25.0 | 包管理工具,用于处理包的元数据和依赖关系 |
184+
| **setuptools** | 80.9.0 | Python 包安装和分发工具 |
185+
| **joblib** | 1.5.3 | 并行计算和任务调度库,用于提高计算效率 |
186+
187+
## 自然语言处理相关依赖
188+
189+
| 包名 | 版本 | 用途 |
190+
|------|------|------|
191+
| **catalogue** | 2.0.10 | 目录管理库,用于管理自然语言处理资源 |
192+
| **cymem** | 2.0.13 | 内存管理库,用于优化 Python 的内存使用 |
193+
| **murmurhash** | 1.0.15 | 哈希函数库,用于高效的字符串哈希计算 |
194+
| **preshed** | 3.0.12 | 哈希表库,用于快速的键值对存储和查找 |
195+
| **srsly** | 2.5.2 | 数据序列化库,用于处理 JSON、YAML、msgpack 等格式 |
196+
| **wasabi** | 1.1.3 | 轻量级的控制台输出美化库 |
197+
| **weasel** | 0.4.3 | 工具库,用于开发和训练自然语言处理模型 |
198+
| **smart-open** | 7.5.0 | 统一的文件访问接口,支持本地文件、HTTP、S3 等 |
199+
| **cloudpathlib** | 0.23.0 | 云存储文件操作库,支持 AWS S3、Azure Blob 等 |
200+
201+
## 数学和科学计算库
202+
203+
| 包名 | 版本 | 用途 |
204+
|------|------|------|
205+
| **sympy** | 1.14.0 | 符号计算库,用于代数和微积分计算 |
206+
| **mpmath** | 1.3.0 | 多精度数学计算库,支持高精度数值运算 |
207+
| **networkx** | 3.6.1 | 图论和网络分析库 |
208+
| **filelock** | 3.20.3 | 文件锁定库,用于处理并发访问问题 |
209+
| **fsspec** | 2026.1.0 | 文件系统规范库,提供统一的文件系统接口 |
210+
211+
---
212+
213+
# 运行(自己替换路径)
214+
215+
1. 安装 D:\Tesseract-OCR (可以发行版找到tesseract文件夹,改名为Tesseract-OCR放在d盘)
216+
217+
2. cd C:\Users\jim\git\LingZero ; .\.venv\Scripts\activate ; python main.py
218+
219+
220+
# 编译打包 (自己替换路径)
221+
222+
## 前提 (自己替换路径)
223+
1. 下载发行版
224+
2. 激活安装依赖的venv环境
225+
226+
## 打包指令(自己替换路径)
227+
228+
cd "c:\Users\jim\git\LingZero"; python -m PyInstaller -w main.py -i "./a.ico" --add-data "./config.ini;." --onedir --noconfirm --name translation
229+
230+
## 打包后(此步取决于你的spec有没有复制文件) (自己替换路径)
231+
1. 发行版找到tesseract文件夹,放在C:\Users\jim\git\LingZero\dist\translation\
232+
2. 发行版找到translate-en_zh-1_9.argosmodel,ecdict.json ,a.ico文件,放在C:\Users\jim\git\LingZero\dist\translation
233+
94234

95235
欢迎 Star ⭐、Fork 🍴 或提 Issue 🚀,一起打造更丝滑的离线翻译体验!

config.ini

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ copy_trans_fixed_width = 300
44
; 翻译弹窗的样式。修改margin和padding样式可能导致意料之外的后果
55
background_style = "background-color:rgb(255, 255, 255); border-radius: 3px; color: black; font-size: 16px;"
66
; 截图的快捷键,可以设置多个,逗号分隔
7-
capture_triggered_hotkey = ctrl+space,ctrl+b,ctrl+k
7+
capture_triggered_hotkey = ctrl+space,ctrl+b,ctrl+k,alt+shift+m
88
; 截图复制的快捷键,可以设置多个,逗号分隔(未实现)
99
copy_triggered_hotkey = ctrl+shift+d,ctrl+8
1010
; 将选中的中文转为英文快捷键,并原地粘贴,并修改剪切板的快捷键,该功能使用腾讯翻译,
@@ -13,4 +13,7 @@ copy_into_english_triggered_hotkey = alt+c,alt+v
1313
; 停用/启用复制翻译的快捷键,可以设置多个,逗号分隔
1414
stoptrans_triggered_hotkey = ctrl+1,f8
1515
; (废弃,改为右键)悬浮窗的文本内容改为可复制的快捷键,可以设置多个,逗号分隔
16-
text_selectable_triggered_hotkey = a,z,space
16+
text_selectable_triggered_hotkey = a,z,space
17+
; DeepSeek API (deepseek-chat 3.2)翻译提示词 - 英文转中文
18+
deepseek_trans_prompt_en_to_zh = "请将以下英文文本翻译成中文,保持原意不变,尽量简洁:"
19+

0 commit comments

Comments
 (0)