Mdict格式转macOS原生字典

这是一个非常详细的指南,介绍了如何将 Mdict 格式的字典转换为 macOS 原生字典,以下是整理和翻译的步骤,便于参考和使用:

环境准备

  1. 创建工作目录

    1
    2
    mkdir -p ~/Developer/ConvertDict/
    cd ~/Developer/ConvertDict/
  2. 安装 Python 3 和 Homebrew

    • 请参考网上教程安装 Homebrew 和 Python 3(例如 Python 3.9.7)。Homebrew 安装过程中会自动安装 Command Line Tools for Xcode。
  3. 安装 Python 依赖包

    1
    pip3 install lxml beautifulsoup4 html5lib
  4. 安装 lzo

    1
    2
    3
    4
    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
    • 请注意,如果是 Intel 芯片的 Mac,请将 /opt/homebrew/ 改为 /usr/local/

下载必要工具

  1. 下载 Dictionary Development Kit

    1
    git clone https://github.com/SebastianSzturo/Dictionary-Development-Kit
  2. 下载 pyglossary

    1
    git clone https://github.com/ilius/pyglossary

字典转换

  1. 转换 Mdict 字典
    1
    2
    cd [Mdict 字典下载文件夹]
    python3 ~/pyglossary/main.py --write-format=AppleDict "朗文当代高级英语辞典(英英·英汉双解 第6版).mdx" "朗文当代高级英语辞典(英英·英汉双解 第6版)"
    • 最后一个参数是生成文件的路径名,可以将文件改为英文命名,避免引号问题。

编译和安装

  1. 修改 Makefile

    • 进入生成的文件夹,修改 Makefile,将 DICT_BUILD_TOOL_DIR 改为 Dictionary-Development-Kit 的正确路径:
      1
      2
      3
      DICT_BUILD_TOOL_DIR := /Users/[用户名]/Developer/ConvertDict/Dictionary-Development-Kit

      % /Users/cherche/Dictionary-Development-Kit
    • 注意路径必须是完整路径,不能使用相对路径。
  2. 编译字典

    1
    2
    cd "朗文当代高级英语辞典(英英·英汉双解 第6版)"
    make
  3. 覆盖样式文件

    • 用原来的 Mdict 文件夹中的 .css 文件覆盖 DefaultStyle.css
  4. 修改显示名称

    • 使用 Xcode 或其他 plist 编辑器打开 info.plist,修改以下字段:
      • Bundle name 对应字典名缩写,建议简略一些,比如“朗文当代高级6ed”。
      • Bundle display name 对应设置界面里的名称,建议使用全称,比如“朗文当代高级英语辞典(英英·英汉双解 第6版)”。
      • 注意, 这里如果不修改名字, 那么会默认使用文件名字。
  5. 安装字典

    1
    make install
    • 字典安装路径是 ~/Library/Dictionaries,你可以在此路径下打开并查看结构,并修改 .plist 文件中的名称。

安装效果

字典转换完成后,可以在 macOS 原生词典应用中使用。如果字典包含语音文件(如 mp3 格式),点击可以直接朗读。

补充说明

  1. 如果你的字典语音文件不是 mp3 或 wav 格式,请参考 pyglossary 官方文档进行批量转换。
  2. 如果 CSS 文件中定制了字体等,也可以参考相应教程进行调整。

参考材料

  • 转自Read ERN
  • Mdict 转 Mac 词典小记
  • Mdict 词典文件转换为 macOS 原生词典