macOS Dictionary 词典编译
macOS 自带的 Dictionary.app 相比于其他词典应用,支持触摸板重按取词,十分方便。但自带词典随够用但较少,可以从其他词典转换成支持的词典,以丰富词库。
环境搭建及编译难度较小,重点在于各个词典的优化,以达到更加的显示效果。下面是整个词典制作的过程。
环境部署
官方文档:pyglossary
1. Python环境搭建
1 | 下载项目 |
2. Apple 词典工具安装
下载地址:Additional Tools for Xcode
下载与自身 xcode 匹配的 “Additional Tools for Xcode”
将其中 Utilities/Dictionary Development Kit
解压放到 /Applications/Utilities
下
3. 音频转换需要安装speex
brew直接安装的话,发现报错 “speexdec: command not found”,不带 bin 可执行文件,需要从源码编译 issues/184
下载源码:speex.org
1 | 报错 "autoreconf: error: aclocal failed with exit status: 2",需安装依赖 |
经测试,spx文件不需要转换,直接变更后缀为.mp3
也可正常使用
词典选择
资源比较丰富且整理较好的有以下几个:
- 牛津高阶英汉双解词典(第四版)/(第八版)/(第九版)/(第十版)
- 朗文当代高级词典(第五版)
- 柯林斯COBUILD双解词典
- 韦氏高阶英汉双解词典
资源获取的网站常用的有以下几个:
- https://freemdict.com/
- https://forum.freemdict.com/c/12-category/12
- https://www.pdawiki.com/forum/forum-4-1.html
转换过程
1. 资源转换
1 | 移动资源文件 |
将LM5style.css
文件内容,替换到 objects/LDOCE5++.dictionary/Contents/DefaultStyle.css
2. 优化
为了让词典在 Dictionary.app 中显示效果更好,需要进行优化。
1 | sed -i "" "s|> <\/a>|>🔈</a>|g" LDOCE5.xml |
3. 编译与安装
1 | make |
示例
由于 Dictionary.app 自带牛津词典,这里转换朗文和柯林斯作为补充。
1. LDOCE 5++ V2.15
1 | 转换为XML文件 |
修改 LDOCE5.plist
CFBundleDisplayName:朗文当代高级词典(第五版)
CFBundleName:朗文当代
将 LM5style.css
内容复制到 LDOCE5.css
,并修改内容
1 | # 显示隐藏 |
2. CollinsCOBUILDOverhaul v2.30
1 | 转换为XML文件 |
修改 COLLINS.plist
CFBundleDisplayName:柯林斯英汉双解词典
CFBundleName:柯林斯双解
自带CSS效果显示不好,这里查找到柯林斯完美复原版的样式文件,进行替换。将内容复制到 COLLINS.css
,并修改内容
1 | # 展开隐藏项 |
参考资料
https://github.com/ilius/pyglossary/blob/master/doc/apple.md
https://kaihao.io/2018/mdict-to-macos-dictionary/
https://10382.github.io/post/Mdict转Mac词典小记/
https://www.zhihu.com/question/20428599
https://www.pdawiki.com/forum/thread-42822-1-1.html
https://www.pdawiki.com/forum/thread-13014-1-1.html
https://placeless.net/blog/macos-dictionaries
http://qunwang6.github.io/blog/OSXDictionary/
https://www.readern.com/convert-mdict-to-macos-dictionary.html