【词典】Mdict转换为macOS Dictionary

背景

譬如pdawiki的MDict 词库资源区等网站中有大量网友制作并精心排版的mdict词典,也非常容易下载,但是事实上Mac OS自带的词典相当好用……只是词典资源少。
那么言归正传,如何将Mdict格式的词典转换为macOS Dictionary呢?
【注】本文默认读者已经下载好词典文件并且.mdx与.mdd在同一个文件夹中。

参考

Mdict to macOS Dictionary转换笔记
How to Convert Mdict to Mac OS X dictionary

笔者的配置

macOS High Sierra 10.13.4
python 2.7(系统自带)
python 3.6(需要安装)
Xcode 9.3(需要安装)

操作过程

【注】文中终端输入的sudo大部分可以省略。

  1. 从github上克隆pyglossary,打包下载再解压也可。

2.安装Xcode,或者只安装Command Line Tools for Xcode。

【注】只安装Command Line Tools for Xcode的方法笔者没有尝试过,新版本的Xcode中包含有Command Line Tools for Xcode。

  1. 下载Dictionary Development Kit。

首先,在苹果的开发者网站用自己(或其它人)的账号免费申请开通成为开发者,
然后在更多下载中找到 Additional Tools for Xcode的最新版本,下载。
【注】迅雷等下载器下载可能会失败,尽量使用safari直接下载。
下载好后装载,应该包含:


在其中的Utilities文件夹中,找到Dictionary Development Kit,复制。
在应用程序文件夹中找到“实用工具”文件夹,在其中创建一个DictionaryDevelopmentKit文件夹(无空格),粘贴。

  1. 安装python-lzo

终端输入:

sudo pip3 install python-lzo

【注】出现问题参考解决方法

  1. 安装BeautifulSoup4

终端输入:

sudo pip3 install lxml beautifulsoup4 html5lib
  1. 【可选】Macport安装——针对音频转换

【注】笔者未进行音频转换操作,详细内容可以参照How to Convert Mdict to Mac OS X dictionar,其中更新macport的操作使用:
sudo port selfupdate,对sources.conf的修改使用
rsync://rsync.macports.org/release/tarballs/ports.tar [default]即可(参考意见)。

  1. 转换

终端中输入:

cd 词典文件夹
#如: cd downloads/mwaled
python pyglossary文件夹路径/pyglossary.pyw --read-options=resPath=OtherResources --write-format=AppleDict 词典缩写.mdx 词典缩写.xml
#如:python Downloads/pyglossary/pyglossary.pyw --read-options=resPath=OtherResources --write-format=AppleDict mwaled.mdx mwaled.xml

【注】如出现ImportError: No module named builtins问题,查看解决方法。

等待程序运行结束,使用文本编辑打开makefile,


修改DICT_BUILD_TOOL_DIR为自己的Dictionary Development Kit文件夹路径,并保存。如图中所示为 "/Applications/Utilities/DictionaryDevelopmentKit/Dictionary Development Kit"。
【注】DICT_NAME是生成文件的名字。
【另注】Makefile.plist可以修改词典的参数,详见How to Convert Mdict to Mac OS X dictionar。
【另注】可以使用Mdict词典制作者提供的css文件(如果有)代替生成的css文件(参考意见)。
终端中输入:

make && make install
  1. 完成

可以在词典应用的偏好设置中修改词典顺序已经是否显示。制作好的词典可以在词典文件夹中找到。
【注】如果制作前已经打开了词典应用,可能刷不出新制作的词典,重新打开词典应用即可。

你可能感兴趣的:(【词典】Mdict转换为macOS Dictionary)