Polyglot 是一个面向 NVDA 的全局翻译插件,重点在于快速、多引擎、可扩展。它可以翻译选中文本、剪贴板文本和 NVDA 最近一次朗读的内容,也可以拦截 NVDA 朗读内容并执行自动翻译。
插件的核心是动态引擎架构。每个翻译引擎都声明自己的能力和配置项,设置界面在运行时根据这些配置动态生成,因此核心逻辑保持精简,同时也方便继续接入新的翻译服务。
NVDA+Alt+Z 翻译命令层;在命令层中按 H 可显示命令层帮助。推荐直接通过 NVDA 插件商店安装。也可以手动安装:
.nvda-addon 安装包。NVDA 菜单 -> 选项 -> 设置 -> Polyglot。NVDA+Alt+Z 进入命令层,再按下面的功能键执行操作;在命令层中按 H 可显示命令层帮助。按 NVDA+Alt+Z 进入命令层。进入后会有一声短促提示音。在命令层中按 H 可显示命令层帮助。大多数命令执行后会自动退出命令层;切换语言和切换引擎等命令会保持在命令层中,方便连续调整。切换引擎只会在已启用的引擎之间循环。
| 按键 | 动作 |
|---|---|
T |
翻译当前选中的文本。 |
Shift+T |
反向翻译当前选中的文本。 |
B |
翻译剪贴板文本。 |
Shift+B |
反向翻译剪贴板文本。 |
L |
翻译 NVDA 最后一次朗读的文本。 |
Shift+L |
反向翻译 NVDA 最后一次朗读的文本。 |
S |
切换到下一个源语言。 |
Shift+S |
切换到上一个源语言。 |
G |
切换到下一个目标语言。 |
Shift+G |
切换到上一个目标语言。 |
E |
切换到下一个已启用的翻译引擎。 |
Shift+E |
切换到上一个已启用的翻译引擎。 |
W |
交换源语言和目标语言。 |
A |
播报当前引擎和语言对。 |
C |
复制最近一次翻译结果。 |
V |
开启或关闭自动翻译。 |
I |
打开交互式翻译窗口。 |
O |
打开 Polyglot 设置面板。 |
X |
清空翻译缓存。 |
H |
打开命令层帮助。 |
交互式翻译窗口适合长文本、反复调整参数或需要边改边试的场景。
I 打开窗口。Ctrl+Enter 可直接发起翻译。当 NVDA 界面语言为中文(包括简体和繁体中文)时,Polyglot 会使用离线英汉词典扩展查看光标所在的单词命令:
numpad5(台式机键盘布局) 读出查看光标所在的单词。调用 NVDA speech.spellTextInfo 的插件也会获得相同行为。
如果整行只有一个英文单词,连按三次读出当前行命令也可获得释义。
查询支持一层常见的首末句子标点、安全的拼写变体,以及常见的复数、时态、分词、比较级和最高级形式。精确词条始终优先;如果一个拼写可能对应多个释义,Polyglot 会朗读最多三个候选词条及其首义。两至三个字符的全大写单词如果只命中小写词条,会朗读可能的小写释义,并提示它也可能是缩写。外形合法但未收录的英文单词会明确提示未收录。单字符、多词行和不支持的文本仍保留 NVDA 原有的字符解释。
查询完全在本地完成,不会把单词发送到任何翻译服务。
使用“翻译选中文本”“翻译剪贴板”和“翻译最后朗读内容”时,英译中(源语言为英语或自动检测、目标语言为简体或繁体中文)以及输入为英文单词的中译英请求,命中完整词条后会直接返回本地释义。其他内容仍使用当前翻译引擎。
翻译命令和文本查看分别设有本地词典开关,默认开启;关闭后,对应功能恢复原有行为。
当前词典规模:
将手动翻译结果复制到剪贴板:手动翻译成功后,自动把结果复制到剪贴板。翻译选中文本、剪贴板或最后朗读内容时优先使用本地英汉词典:控制上述三个翻译命令的本地查词。在文本查看中使用本地英汉词典:控制 NVDA 文本查看中的本地单词释义。启用智能语音过滤(忽略无需翻译的文本,例如角色、状态、位置和其他格式信息):在处理 NVDA 朗读内容时,尽量跳过角色、状态、位置和格式等非正文信息。清除缓存:清除持久化翻译缓存,按钮标签中会显示当前缓存条目数。大多数引擎都继承一组公共配置:
启用此引擎:控制该引擎是否可用于翻译请求、命令层引擎切换和交互式翻译窗口。禁用后的引擎仍会保留在设置中,方便继续配置。源语言 和 目标语言代理模式:使用系统代理,或完全禁用代理请求超时:请求超时时间如果某个引擎会返回检测到的源语言,还会额外显示:
当检测到的源语言与目标语言相同时自动交换 (源语言须为“自动检测”):当源语言设为自动检测且识别结果与目标语言相同时,自动切换翻译方向交换至语言:发生自动切换时使用的替代目标语言部分引擎会额外暴露高级选项:
Ollama 1 和 Ollama 2 提供两个互相独立的保存槽,适合分别保存不同的 Ollama 地址和模型。OpenRouter 提供 API 地址、API 密钥、模型预设、自定义模型名称、提示词模板、自定义系统提示词和用户提示词。Ollama 引擎提供 API 地址、模型名称、API 密钥(可选)、提示词模板和自定义提示词。Google Translate (Polyglot) 提供可配置的端点 URL 和 API 密钥字段。Google Translate (key-free) 提供可选的镜像服务器开关。Polyglot 可以使用 Chrome 内置的 Translator API 进行离线翻译。翻译由本机独立的 Chrome 实例完成,文本不会发送到第三方翻译服务。
在 Polyglot 设置中选择 Chrome AI (Offline),并设置源语言和目标语言。Chrome AI 需要明确指定源语言;此引擎不提供“自动检测”,这样 Polyglot 可以在启动 Chrome 前检查所需模型。
首次翻译时,如果所需模型尚未安装,Polyglot 会弹出询问对话框。选择“是”会使用 Polyglot 模型管理器下载并安装模型;如果你的网络访问 Chrome 模型下载服务较慢、被阻断或不稳定,建议选择此项。选择“否”会让 Chrome 下载模型;选择“取消”会取消本次翻译。模型准备好后,翻译会自动继续。
翻译在本机完成。模型可以由 Polyglot 模型管理器安装,也可以由 Chrome 下载。如果你的网络访问 Chrome 模型下载服务较慢或不可用,可以在询问对话框中选择“是”,也可以从 NVDA 的“工具”菜单打开 Polyglot ChromeAI 模型管理器,提前安装或移除需要的离线模型。
Polyglot 会为 Chrome AI 使用独立的 Chrome 数据目录,避免影响日常 Chrome 配置。模型、缓存和运行数据会保留,以减少重复下载。
默认位置为:
%LOCALAPPDATA%\Polyglot\ChromeAI
如果系统中没有 LOCALAPPDATA 环境变量,则会回退到 NVDA 配置目录下的 polyglot_chrome_ai 目录。
NVDA 退出时,Polyglot 会关闭由插件启动的 Chrome 实例。
当前仓库中包含以下翻译引擎:
| 引擎 | 所需凭据 | 说明 |
|---|---|---|
Baidu Translate |
百度 app ID 和 secret | 标准厂商 API 接入。 |
Caiyun |
彩云 token | 标准厂商 API 接入。 |
Chrome AI (Offline) |
无 | 使用 Chrome 内置 Translator API 和本机模型;需要明确指定源语言。 |
DeepL |
DeepL API 密钥 | 标准厂商 API 接入。 |
Google Translate (key-free) |
无 | 可选启用镜像接口。 |
Google Translate (Polyglot) |
可配置 API 密钥和端点 URL | 代码内带默认接口值,实际可用性取决于服务状态。 |
Lingva Translate |
无 | 使用公开 Lingva 接口,不报告检测语言。 |
Microsoft Translator (key-free) |
无 | 会自动获取临时访问令牌。 |
Niutrans |
小牛翻译 API 密钥 | 标准厂商 API 接入。 |
Ollama 1 |
Ollama 地址、模型名、可选密钥 | 第一个独立 Ollama 配置槽。 |
Ollama 2 |
Ollama 地址、模型名、可选密钥 | 第二个独立 Ollama 配置槽。 |
OpenRouter |
OpenRouter API 密钥 | 支持模型预设和可编辑提示词模板。 |
Tencent Translate |
腾讯 secret ID 和 secret key | 标准厂商 API 接入。 |
Tencent Translate (Polyglot) |
NVDACN 用户名和密码 | 使用 Polyglot/NVDACN 路由的腾讯翻译。 |
VIVO Translate |
NVDACN 用户名和密码 | 支持语言较少,不支持源语言自动检测。 |
Volcengine (Polyglot) |
NVDACN 用户名和密码 | 使用 Polyglot/NVDACN 路由的火山翻译。 |
Yandex Translate |
无 | 使用公开接口风格,不报告检测语言。 |
欢迎贡献代码、文档、翻译、测试和新的引擎接入。
如果你要新增一个翻译引擎:
addon/globalPlugins/polyglot/services/engines/ 下创建模块。TranslationEngine,或者对 HTTP 引擎继承 BaseHttpEngine。getConfigSpec() 中返回配置描述。views/factory.py 已支持的控件类型:choice、text、password、checkbox、spinctrl。版权所有 (C) 2025-2026 cary-rowen。
本项目使用 GNU General Public License 第 3 版或任何后续版本(GPL-3.0-or-later)授权。
许可证正文随插件包提供,也可查看仓库中的 COPYING.txt。