好久以前写过一篇文章,也是制作自己的macOS字典。作为原生应用,确实在全屏取词方面是有很大优势的。但当时是从Stardict转换的,现在活下来并持续有生命力的还是Mdict类型。所以花了点时间研究,下面是成果。
~/Developer/ConvertDict/
路径,把需要的软件统一放到该路径下cd ~/Developer/ConvertDict/
pip3 install lxml beautifulsoup4 html5lib
brew install lzo
export C_INCLUDE_PATH=/opt/homebrew/Cellar/lzo/2.10/include/lzo:/opt/homebrew/Cellar/lzo/2.10/include/
export LIBRARY_PATH=/opt/homebrew/lib
pip3 install python-lzo
上面安装python-lzo的时候需要分步,否则编译时会提示丢失头文件lzo/lzo1x.h。
指定的环境变量路径是按照Apple Silicon机型环境,如果是Intel芯片,则将/opt/homebrew/
改为/usr/local/
下载安装Dictionary Development Kit
git clone https://github.com/SebastianSzturo/Dictionary-Development-Kit
虽然多年前的版本,但使用上是没有问题的。
git clone https://github.com/ilius/pyglossary
cd Mdict字典下载文件夹
python3 ~/Developer/ConvertDict/pyglossary/main.py --write-format=AppleDict "朗文当代高级英语辞典(英英·英汉双解 第6版).mdx" "朗文当代高级英语辞典(英英·英汉双解 第6版)"
最后一个参数是生成文件的路径名,为了方便,你也可以把相应文件都改成英文命名,避免带上那么多引号。下面是可以修改实际显示名称的。
进入上面生成的文件夹,修改Makefile
,将DICT_BUILD_TOOL_DIR
改为正确的Dictionary-Development-Kit路径("/Users/用户名/Developer/ConvertDict/Dictionary-Development-Kit"
,注意不能用相对路径名,必须是完整的)。
cd "朗文当代高级英语辞典(英英·英汉双解 第6版)"
make
生成的字典在objects
文件夹里
.css
文件的覆盖掉DefaultStyle.css
设置在原生词典中显示的名字
Xcode(或者其他plist编辑器)打开info.plist
,可以修改其中的几个字段
Bundle name
对应的是界面上的字典名缩写,一般建议简略一些,比如“朗文当代高级6ed”
Bundle display name
对应的是设置界面里的名称,一般建议可以放全称,比如“朗文当代高级英语辞典(英英·英汉双解 第6版)”
make install
字典安装路径是~/Library/Dictionaries
,进去打开可以看到结构和上面编译以后的几乎一样,所以你也可以只在这里的.plist
文件里修改显示的名称。
综上,其实找到一个好的字典源可以省掉很多事情。我自己是在某宝买的,就不多说了。