背景
譬如pdawiki的MDict 詞庫資源區(qū)等網站中有大量網友制作并精心排版的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(系統(tǒng)自帶)
python 3.6(需要安裝)
Xcode 9.3(需要安裝)
操作過程
【注】文中終端輸入的sudo
大部分可以省略绅这。
- 從github上克隆pyglossary涣达,打包下載再解壓也可。
2.安裝Xcode证薇,或者只安裝Command Line Tools for Xcode度苔。
【注】只安裝Command Line Tools for Xcode的方法筆者沒有嘗試過,新版本的Xcode中包含有Command Line Tools for Xcode浑度。
- 下載Dictionary Development Kit寇窑。
首先,在蘋果的開發(fā)者網站用自己(或其它人)的賬號免費申請開通成為開發(fā)者箩张,
然后在更多下載中找到 Additional Tools for Xcode的最新版本甩骏,下載。
【注】迅雷等下載器下載可能會失敗伏钠,盡量使用safari直接下載横漏。
下載好后裝載,應該包含:
在其中的Utilities文件夾中熟掂,找到Dictionary Development Kit缎浇,復制。
在應用程序文件夾中找到“實用工具”文件夾赴肚,在其中創(chuàng)建一個DictionaryDevelopmentKit文件夾(無空格)素跺,粘貼二蓝。
- 安裝python-lzo
終端輸入:
sudo pip3 install python-lzo
【注】出現(xiàn)問題參考解決方法
- 安裝BeautifulSoup4
終端輸入:
sudo pip3 install lxml beautifulsoup4 html5lib
- 【可選】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]
即可(參考意見)。
- 轉換
終端中輸入:
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
【注】如出現(xiàn)ImportError: No module named builtins問題踩验,查看解決方法鸥诽。
等待程序運行結束,使用文本編輯打開makefile箕憾,
修改DICT_BUILD_TOOL_DIR為自己的Dictionary Development Kit文件夾路徑牡借,并保存。如圖中所示為 "/Applications/Utilities/DictionaryDevelopmentKit/Dictionary Development Kit"袭异。
【注】DICT_NAME是生成文件的名字钠龙。
【另注】Makefile.plist可以修改詞典的參數(shù),詳見How to Convert Mdict to Mac OS X dictionar御铃。
【另注】可以使用Mdict詞典制作者提供的css文件(如果有)代替生成的css文件(參考意見)碴里。
終端中輸入:
make && make install
- 完成
可以在詞典應用的偏好設置中修改詞典順序已經是否顯示。制作好的詞典可以在詞典文件夾中找到上真。
【注】如果制作前已經打開了詞典應用咬腋,可能刷不出新制作的詞典,重新打開詞典應用即可谷羞。