macOS 词典的用力点按查询(或三指查询)功能很好用,但可惜不是每个应用都支持,因此我想把查询苹果词典的功能带到 Easydict 上,让所有应用都能够便捷地使用系统词典查询单词。
Easydict 自动支持词典 App 中系统自带的词典,如牛津英汉汉英词典(简体中文-英语),现代汉语规范词典(简体中文)等,只需在词典 App 设置页启用相应的词典即可。
另外,苹果词典也支持自定义导入词典,因此我们可以通过导入 .dictionary 格式的词典来添加第三方词典,如简明英汉字典,朗文当代高级英语辞典等。
⚠️ 需自购纸书或 App,以缓解版权不安。
最简单的添加方式,就是找寻已转换好格式的 .dictionary 词典,将其拖入到 Dictionary 的【词典文件夹】,再重启词典 App,就可以在设置中看到这部词典了。
注意:每次添加新词典后,需要重启 Easydict 才能在 Easydict 中看到该词典。另外,修改词典应用设置时,可能会导致 Easydict 崩溃,这是 feature。
为方便大家使用,我已经制作了几部 .dictionary 词典,放在 Google 云盘上,直接下载即可用。
朗文、柯林斯和牛津,这三本大块头词典都很好,但由于词条内容实在太过丰富,可能会影响 Easydict 查询加载速度,因此建议选择其中一本自己喜欢的就好。
这部词典的来源记不清了,重点是该词典的 css 是我之前学习制作字典时自己调的,内部 DefaultStyle.css
有详细注释,初学者如果想尝试自定义、美化词典界面,可以从这个 css 开始。
注意:这部份教程主要面向进阶用户,需要一点编程知识和折腾精神。
下面介绍一下如何借助开源项目 pyglossary 将 Mdict 词典转换为 .dictionary 词典,文档主要参考自 pyglossary apple。
- 安装 Python 库
sudo pip3 install lxml beautifulsoup4 html5lib
-
安装 Xcode 的命令行工具 Command Line Tools for Xcode
-
安装 Dictionary Development Kit
Dictionary Development Kit 是 Additional Tools for Xcode Xcode 开发工具的一部分,下载后,需要将
Dictionary Development Kit
移动到/Applications/Utilities/Dictionary Development Kit
位置。 -
下载 pyglossary
请将下载的 pyglossary 库移动到一个固定目录,后面每次转换词典都需要用上它。
假设 pyglossary-master 位于
~/Downloads/pyglossary-master
Mdict 词典资源可从下面网站获取:
准备工作已完成,下面开始进入正题。
假设 Mdict 格式的词典文件位于 ~/Downloads/oald8/oald8.mdx
, 图片、语音文件 oald8.mdd
也在同一文件夹下。
cd ~/Downloads/oald8/
python3 ~/Downloads/pyglossary-master/main.py --write-format=AppleDict oald8.mdx oald8-apple
cd oald8-apple
sed -i "" 's:src="/:src=":g' oald8-apple.xml
make
如果一切顺利,最后会在该目录下生成一个 objects
文件,里面的 oald8-apple.dictionary
就是转换后的苹果格式词典,将其拖入到 Dictionary 的【词典文件夹】就可以了。
注意,上面生成的词典,界面非常简陋,而通常流传于网上的 Mdict 都会带一份美化 css,例如 oald8.css
,由于 pyglossary 并不会自动处理 css,因此这一步需要我们手动完成,具体步骤是将 oald8.css
中的内容复制,追加到 oald8-apple.dictionary
内部的 DefaultStyle.css
。如果想自定义 css,同样也是修改这个文件。
词典的名字可通过 Info.plist
修改,其中 Bundle name
是词典在应用界面中显示的名字,Bundle display name
是词典在设置页中显示的名字。为使用方便,建议两者设置为同一个值。
(完)。