PyGlossary:将不同格式的字典转换成 Kindle 字典

书友以前写过一篇文章《如何把 MDX 格式词典转化为 Kindle 字典》,介绍了一种将 MDX 格式字典转换为 Kindle 字典的方法。然而,该方法有三个缺点:一是只能将源格式转换为 MDX 字典;二是步骤多,操作繁琐;三是部分操作依赖 Windows 系统,用于其他系统(如 macOS)小伙伴不方便。为了解决这个问题,本文将介绍一种支持更多格式的跨平台 Kindle 字典转换方法。

   

目录

   

1、安装操作 PyGlossary
● Windows 系统
● macOS 系统
2、转换 Kindle 字典源码
3、修改 Kindle 字典源码
4、生成 Kindle 字典文件
5、附录:PyGlossary 支持格式

将用于本文PyGlossary    和 KindleGen    这两个软件。PyGlossary 是一种开源跨平台的字典转换工具,可以将各种字典格式转换为不同的字典格式。在这里,我们主要使用它来转换 Kindle 字典格式。KindleGen 是亚马逊提供的 Kindle 电子书转换工具,我们用它来把源代码转换成 MOBI 格式的 Kindle 字典。

1、安装操作 PyGlossary

以下是各操作系统的安装方法,也可参考项目中的 README.md    安装文档提供的步骤。

● Windows 系统

1、安装 Python3 及相关依赖:

PyGlossary 要求您的操作系统配备 3.8 或更新 Python 版本,这样的条件可以跳过这一步。

从 Python 官网下载最新版本Python    并安装(3.8 或 3.9 版本可用,推荐 3.9)。为确保相关命令可以直接用于命令提示符,请在安装开始时安装界面必须检查Add Python 3.9 to PATH”

Python 安装完成后,作为管理员运行命令提示符(先按组合快捷键 Win R    调出操作窗口,然后输入 cmd,最后同时按住 Ctrl Shift    并按 Enter    键)。在命令提示符中输入以下命令,并按 Enter 键:

pip3 --version

如果 pip如果 命令可用,应能看到以下提示:

pip 21.0 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)

假如你的 Windows 系统已安装 Python 2.x 版本可能会遇到环境变量冲突。解决方案是新安装的 Python 3.x 程序目录中的 python.exe 复制一份,重命名为 python3.exe,这样就可以在命令提示符中使用 python3    命令使用新版本的 Python,使用 python    命令使用旧版 Python。

2、安装 PyGlossary:

在命令提示符中输入以下命令,并按 Enter 键安装 PyGlossary:

pip3 install pyglossary

安装完成后,在命令提示符中执行命令 pyglossary --version,如果看到版本号,说明安装成功。

3、运行 PyGlossary:

在命令提示符中输入如下所示的命令并按 Enter 键可启动带界面 PyGlossary:

pyglossary --tk

* 提示:如果操作中出现错误提示 FileNotFoundError: [Errno 2]反馈1反馈2),这是因为安装项目的作者最近引入了 BUG 版本造成的,请命令 操作pip3 install pyglossary --upgrade --pre    安装已修复的版本。

● macOS 系统

1、安装 Homebrew:

对于 macOS 系统,书伴推荐使用包管理器 Homebrew    安装 Python3 及相关环境依赖。如果您的系统尚未安装 Homebrew,请打开应用 → 实用工具终端”程序,并输入如下所示的命令:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装完成后,输入命令 brew --version,如果您看到以下信息,则表示安装成功:

brew --version

Homebrew 3.0.1
Homebrew/homebrew-core (git revision 013cd; last commit 2021-02-16)
Homebrew/homebrew-cask (git revision ef7151; last commit 2021-02-16)

2、安装 Python3 及相关依赖:

如下终端输入命令所示Enter 键安装 Python3 及相关依赖:

brew install python3 pygobject3 gtk 3

3、安装 PyGlossary:

在终端输入以下命令时, Enter 键安装 PyGlossary:

pip3 install pyglossary

安装完成后,在终端输入命令 pyglossary --version并按 Enter 键,如果看到版本号,说明安装成功。

4、运行 PyGlossary:

以下命令启动带界面的 PyGlossary:

pyglossary --gtk

* 提示:PyGlossary 提供了两种图形界面方案,一种是 Python3 内置的 Gtk3,另一种是 Tkinter,运行 pyglossary    命令时附加参数 --gtk    或 --tk    指定相应的界面方案。如果只运行 pyglossary    命令不附加参数,PyGlossary 将优先使用 Gtk3,如果不符合条件,则使用 Tkinter。对于 Gtk3 界面方案,Windows 系统安装可能比较麻烦,建议使用 Tkinter;对于 Tkinter 方案,因为 PyGlossary 使用了 Tix    扩展,在 macOS 系统中和 Python3 有兼容性问题,建议使用 Gtk3、此外 PyGlossary 还支持命令行界面,如喜欢这种使用方式,可通过 pyglossary --help    命令检查使用说明。

除 Windows 系统和 macOS 系统外,PyGlossary 还支持许多分发版本的 Linux 系统(如 Ubuntu)。若使用 Linux 系统,请参考您使用的分发版本官方文档安装相应的内容。

2、转换 Kindle 字典源码

目前 PyGlossary 转换 Kindle 字典的功能不完善,不能直接将其他字典格式转换为最终 Kindle 字典文件需要一个中间过程:将其他字典格式转换为 Kindle 字典源代码,然后对源代码进行必要的修改,最后使用 KindleGen 将源代码转换为最终 Kindle 字典文件。以下是详细的转换步骤。

       

  1. 点击“Input File在输入框后面【Browse】按钮,在弹出窗口中选择要转换的字典文件(软件会自动检测文件格式,如果检测错误,可以通过Input Format”后面的【[Select Format]】手动选择)。
  2.    

  3. 点击软件界面上的Output File在输入框后面【Browse】弹出窗口的按钮文件名将要存储的文件夹名称输入转换后的源代码(注意,为了避免混淆,名称最好不要与当前路径中存在的文件夹同名)。
  4.    

  5. 点击“Output Format”后的【[Select Format]】,双击弹出框选择MOBI E-Book”。
  6.    

  7. 最后点击界面上的大按钮【Convert】开始转换,直到转换完成。

注意,正如前面提到的,PyGlossary 转换 Kindle 字典的功能还不够完美和强大。如果在转换过程中可能会遇到卡住或命令提示符错误的提示,用担心,只需确保其成功输出源文件。

3、修改 Kindle 字典源码

然后用代码编辑器打开转换后源码中的 content.opf 文件,修改必要的字典元数据。

首先是为字典的语言元数据设置语言代码。一般来说,字典的语言与查询单词的语言是一致的。

假设字典是英汉字典en。元数据会影响 字典Kindle 中的一些行为。Kindle 当设备为英语语言设置默认字典时,如果语言代码错误,就找不到字典。此外,错误的语言代码会导致即使是英语电子书也不能自动调用字典。

更改前:

阅读剩余
THE END