GoldenDict是一款开源的桌面端词典检索应用,跨平台,支持多种词典格式。它有十分丰富的可配置项,包括字典组,拼写检查、单词发音、语音合成、在线翻译等等。GoldenDict-ng是基于前者重写的新一代GoldenDict,修复了一些长期累积的问题,目前仍然处于积极开发中,安装时可看发行版块打包的版本

GoldenDict向前兼容一些Windows XP之类的老旧系统,我个人也一般使用软件的稳定版,这里就以配置GoldenDict为例。软件版本为GoldenDict 1.5.0GoldenDict-ng-v23.09.296.5.2-****.zip。二者在菜单的配置步骤上,可能有小部分差异,而配置文件几乎可以共用(不推荐)。更多的使用说明见GoldenDict文档GoldenDict-ng文档

安装上,我使用了Scoop上的便携版,额外要手动删除C:\Users\YourName\scoop\apps\goldendict\current\portable目录,也就是挂掉配置文件夹C:\Users\YourName\scoop\persist\goldendict里的系统目录链接,而使用安装版的配置文件位置C:\Users\YourName\AppData\Roaming\GoldenDict,见issue。可以备份这里的`config`文件。

在配置上,我主要的需求是「词典」「在线翻译」「语法检查」「可离线使用」。

黑暗主题

下载GoldenDict-Full-Dark-Theme。原样式有几处圆角边框,我额外进行了一些调整,可以跳过。

编辑GoldenDict-Full-Dark-Theme\styles\Dark\article-style.css

// 词典框的圆角改为直角等
.gdarticle
{
  border-radius: 0;
}

.programs_plaintext, .programs_html {
  margin-top: 20px;
}

.gdactivearticle .gddictname {
  border: none;
}

.gddictname {
  border: none;
  border-radius: 0;
}

// 处理「语音合成」词典的文字的显示问题
.voiceengines_play {
  margin-top: 22.5px;
}

一些字典内置的样式也可以修改,例如编辑ODE 3/e里的ODE.css

// 字更小
.Od3 {
    font-size: 102%;
    line-height: 97%;
}

参考Installation段落安装样式。

GoldenDict → 编辑 → 首选项 → 附加样式 → Dark

主窗口的布局可在菜单栏的「查看」中设置,窗口大小可手动调整。对于弹窗窗口,参考该issue来操作。我个人使用的布局是:主窗口只保留「查询面板」,尺寸约为屏幕的3/4,宽的1/3;弹窗的尺寸约为屏幕高的1/2,宽的1/4。

修改字典字体

去下载并安装收录全、完成度高的字体,例如思源黑体霞鹜文楷

还是编辑article-style.css,在开头添加:

// 添加本地字体
@font-face {
  font-family: YourFont;
  src: local('Your Font') url('file:C:\\Users\\YourName\\AppData\\Local\\Microsoft\\Windows\\Fonts\\YourFont.ttf') format('truetype');
  font-weight: normal;
  font-style:  normal;

在末尾添加:

body
{
  font-family: "Your Font", NotoSans;
  font-size:   9.5pt;
}

.dsl_t
{
  font-family: "Your Font", NotoSerif;
}

字体不会生效于有内置样式的词典,或者.zim档案。我个人目前使用的是更纱黑体的等宽字体。

添加词典

首先去下载字典文件,例如:

GoldenDict → 编辑 → 词典 → 词典来源/文件 → 添加 → 词典文件们所在的目录 → 递归搜索 On → 应用。

添加词典群组

  1. ... 词典 → 群组 → 添加群组 → TheGroup → 将可用词典拖入群组 → 应用
  2. GoldenDict主界面 → 查找于 → TheGroup

我目前使用的分组是:

default
  在线翻译
  简明英汉字典(仅含中文释义)
  专业词汇词典
  单词拼写检查
write
  句子语法检查
  双解词典(带例句)
etymology
  词源词典
  其他语种
  单词发音
  语音引擎

添加拼写检查词库

GoldenDict已内置了部分的拼写词库,勾选条目即可。

如果需要额外添加词库:

  1. 搜索并下载名「Hunspell Dictionary」,里面有.aff.dic文件,例如English Spell Checker Dictionaries上的「en_US」。要添加多个词库时,需要将所有的.aff.dic文件放在同一目录下,例如新建一个文件夹gd_hunspell
  2. ... 词典 → 词典来源/构词法规则库 → 变更 → gd_hunspell所在 → 勾选库中条目 → 应用
  3. ... 群组 → 将拼写词典拖入词典群组

添加单词发音

  1. 下载语音资料pronunciations。仅英语,约2GB大小,下载过程略麻烦
  2. 下载后, 解压各个压缩包到同名的文件夹
  3. ... 词典 → 词典来源/音频文件目录 → 添加 → 解压后的文件所在 → 应用

对于更多的语言,可以从该帖下载Forvo档案,使用qBittorrent Enhanced一类的工具。依据帖子内容来操作:

  1. .opus格式的体积更小,音质也十分相近,所以下载时只勾选Forvo_pronunciations/export/opus。约24GB大小,下载完成后不需解压
  2. 成员提到了GoldenDict的「音频文件目录」这个功能不方便也不可靠,推荐使用.dsl文件。可以当成是目录册,指向音频文件的位置
  3. 新版本的.dsl文件被补充了,需要从MEGA分享链接 下载,下载后解压ForvoDSL-20220513.7z

这里,ForvoDSL/ForvoDSL-20220513里的.dsl文件,需要同Forvo_pronunciations/export/opus里的zip,放入同一个文件夹,例如gd_forvo。并且修改文件名,一一对应,例如将en.zip重命名为ForvoEnglish.dsl.files.zip,对应ForvoEnglish.dsl。然后:

... 词典 → 词典来源/文件 → 添加 → gd_forvo所在 → 应用

如果要添加所有的发音词典,且考虑不去移动文件夹Forvo_pronunciations,不重命名文件,可以进行批量mklink操作。

  1. 利用ForvoDSL/ForvoDSL-20220513里的00README.txt包含的信息,可编辑成一个多行的命令脚本。或者直接下载mklink_manytimes.bat
  2. 编辑脚本,批量替换所有...为正确的路径
  3. 在终端中运行mklink_manytimes.bat
  4. ... 词典 → 词典来源/文件 → 添加 → gd_forvo所在 → 应用

添加语音引擎

  1. ... 词典 → 词典来源/语音合成 → 预览/可用语音引擎 → Microsoft Huihui Desktop - Chinese (Simplified) → 添加
  2. ... 预览/可用语音引擎 → Microsoft David Desktop - English (United States) → 添加

此处的语音引擎来自:Windows设置 → 时间和语言 → 语音 → 语音/选择语音。

添加离线维基(仅gd-ng)

Kiwix是一个离线的维基阅读器,也适用于另一些网络内容,例如StackExchange(Stack Overflow)、Project Gutenberg等等,可用来提供高速、稳定的档案访问服务。它支持高度压缩的.zim格式,该格式可包含元数据、HTML、图像等资源。配置步骤:

  1. Content in all languages列表中选择档案,例如「wikipedia (English)」,型号「all maxi」表示包含了除音频、视频等大型媒体文件外的所有内容。各型号的详细说明见该issue1issue2
  2. 下载档案。建议大体积的.zim单独放置,例如下载wikipedia_en_all_maxi_****.zimgd_wikipedia文件夹内3
  3. GoldenDict-ng → 编辑 → 词典 → 词典来源/文件 → 添加 → .zim所在
  4. 等待GoldenDict-ng创建完索引

对于大型档案,无论是搜索条目,还是「全文搜索」,其速度算得上「快」。例如,我需要检索「古腾堡计划」的电子书库中提到某个词的段落:

GoldenDict-ng → 搜索 → 全文搜索 → TheWord → 搜索 → 单击条目。

额外地,也可使用Kiwix客户端阅读zim档案。或者Kiwix JS for PWA,如果要部署到本地,可参考笔记kiwix-js-pwa.md。缺点是检索功能相比GoldenDict-ng,较为不便,仅能从搜索框搜索条目,或者页内搜索。

设置鼠标取词

用到了AutoHotKey脚本GoldenDictOCR。在它的「鼠标选择取词」模式,可以双击选词、划词来查词。GoldenDict默认的查词快捷键是Ctrl+C+C,如果已被占用,可修改为其他键。脚本中的键位也就需要一并修改。例如我用的是Alt+Z

GoldenDict → 编辑 → 首选项 → 热键 → 使用下列热键翻译剪切板中的单词 → Alt+Z

git clone https://github.com/VimWei/GoldenDictOCR
cd GoldenDictOCR

编辑IncludeAHK/GdOcrTool.ahk,填写GoldenDict.exe所在的正确位置:

Global GoldenDictFileName := "...\GoldenDict.exe"

编辑GoldenDict.ahk,修改两处键位:

Send ^{c 2}  // 118行附近,此处的Ctrl+C+C改为Alt+Z,即Send !z 
!i::         // 37行附近,此处的Alt+I改为Alt+Shift+G,即^!g::

启动GoldenDictOCR.ahk后,按Ctrl+Alt+G即可开关「鼠标选择取词」。

设置OCR取词

Umi-OCR是一款开源、可离线、功能灵活的OCR软件。用于一般OCR时,它可提供高速稳定、准确率较高的中英文混合识别。

V1版本里可以再配置一组快捷键,在OCR后触发GoldenDict查词,即「截图联动」。配置步骤:

  1. Umi-OCR → 设置 → 截图联动 On → 快捷键/修改 → 例如Win+Shift+X
  2. ... 联动发送按键/修改 → Alt+Z

Win+Shift+X进行框选即可查词。

对于V2版本,或者说更通用的情况,只需要勾选「复制OCR结果」,在OCR之后按`Alt+Z`就可以了。配置步骤:

Umi-OCR → 添加 → Screenshot OCR → Action after recognition → Copy result (开)

一些实用键位

全部快捷键 ,也可在主菜单的「帮助」中查看。以及一些常用快捷键,如:

  • Ctrl+L 聚焦到输入框
  • Alt+Left/Right 前个/后个查询记录