如何把 MDX 格式词典转换成 MOBI 格式的 Kindle 字典
注意,本文提供的方法某些步骤依赖 Windows 系统,如你使用的是其它系统(如 macOS),可参考《PyGlossary:将其它格式的字典转换成 Kindle 字典》这篇文章提供的跨平台解决方案。
目前 Kindle 字典资源(尤其是小语种字典)还不算太丰富,其来源除了亚马逊官方为 Kindle 提供的一些字典外,就是第三方机构制作或网友自制的字典了。而网友自制的字典,大部分都是通过其它字典格式转换而来,毕竟除非是专业从事制作字典工作的,手工录入词条不太现实。
本文要介绍的便是转换 Kindle 字典的一种方法,即把 MDX 格式的词典转换成适用于 Kindle 的 MOBI 格式字典。MDX 也是一种字典格式,而且相比 Kindle 的 MOBI 格式字典,资源更为丰富一些,你可以通过相关的资源站点(如PDAWIKI、星际译王词库、OwnDict)下载 MDX 词典资源,也可以通过搜索引擎搜索“mdx词典”寻找 MDX 词典资源。本文同样适用于 StarDict 字典的转换。
只要你有 MDX 词典文件或其源文件(包含 dict、idx 和 ifo 三个文件),就可以通过下面的方法将其转化成 Kindle 字典。感谢 Kindle 伴侣交流 QQ 群(一群)的小伙伴 @汪星人 提供的转换步骤,以下内容便是以此为蓝本修缮而成。本教程仅适用于 Windows 系统。
一、准备工作
转换过程中需要用到以下软件,请点击链接下载备用。
- GetDict.exe:百度网盘 * 转换 StarDict 字典可不下载
- python:官方下载 * 请安装 2.7.x 版本,如果系统已安装请忽略
- tab2opf.py:百度网盘【提取码:
7eib
】 - mobigen.exe:百度网盘
- StarDict:百度网盘
二、转换步骤
下面以 MDX 格式的“牛津高阶英语词典(第8版)”举例说明(你也可以使用自己下载到的 MDX 词典文件),详细演示如何一步一步地将其转换成 MOBI 格式的 Kindle 字典。
1、将 MDX 字典转换成 MDX 源文件
运行程序 GetDict.exe。在“选择MDX词典”这项中,点击【浏览…】选择准备好的 MDX 文件,如“牛津高阶英语词典(第8版).mdx”;在“转出文件”这项中,点击【浏览…】选择字典源文件输出路径,建议新建一个文件夹,如“oa8”,输入文件名,如“oa8”,点击【保存】按钮;其它选项保持默认,点击【开始转化】按钮,在弹出的对话框“词典名称”中输入词典的名称,如“oa8”,点击【确定】按钮开始转换。
转换完毕后,在“oa8”这个文件夹中会出现 oa8.dict、oa8.idx 和 oa8.ifo 三个文件。
注意,如果你下载到 MDX 词典本身就是源文件的形式,则可以忽略上面的步骤。不过如果遇到词典源文件后缀为 .dict 的文件后还有一个 .dz,如“***.dict.dz”,需要将 dz 重命名为 gz,并用 7-zip 软件解压,得到“***.dict”文件,然后将后缀名为 .dict 的文件名重命名一下,和其他两个文件的文件名统一起来。
2、将 MDX 字典转换成 TXT 文件
解压缩下载到的“StarDict.zip”,运行文件夹里的“stardict-editor.exe”,切换到“DeCompile/Verify”标签,点击【browse…】按钮,选择“oa8”文件夹中的后缀名为 .ifo 的文件。然后点击【Decompile】按钮,稍候片刻。直到出现提示信息“Done!”,即表示转换成功。
此时“oa8”文件夹中会出现一个转换得到的名为“oa8.txt”的文本文档。
建议检查一下这个文档的内容是否显示正常,如果出现了乱码,请将其更改成正确的编码再保存。否则,后面转换字典文件时出现类似“Source file is not valid UTF8.
”的错误提示。
3、将 TXT 文件 转换成 MOBI 源文件
把 tab2opf.py 拷贝到“oa8”文件夹内。打开“命令提示符”,并用 cd 命令切换到“oa8”目录下,输入以下命令(如果已将 python 添加到环境变量则无需输入 python 的全路径):
C:\python27\python.exe tab2opf.py -utf oa8.txt
等待命令运行完毕之后,在“oa8”文件夹下会出现一个 .opf 文件和几个 .html 文件。用记事本或代码编辑器打开其中的 .opf 文件,然后找到如下所示这段代码:
<metadata>
<dc-metadata>
<dc:Title><h2>oa8</h2></dc:Title>
<dc:Language>en</dc:Language>
<dc:Identifier id="uid">oa8</dc:Identifier>
</dc-metadata>
<x-metadata>
<DictionaryInLanguage>en-us</DictionaryInLanguage>
<DictionaryOutLanguage>en-us</DictionaryOutLanguage>
</x-metadata>
</metadata>
请按照下面的提示说明(红色字符部分)修改上面所示代码:
<dc:Title><h2>词典的名字</h2></dc:Title>
<dc:Language>词典的语言</dc:Language>
<DictionaryInLanguage>输入的语言</DictionaryInLanguage>
<DictionaryOutLanguage>输出的语言</DictionaryOutLanguage>
其中“词典的名字”即是 Kindle 字典的正式名称,如本例中可将其修改为“牛津高阶英语词典(第8版)”。词典的语言一般不用修改,关键在于输入和输出的语言。如果是英汉词典,输入为英语 en-us,输出为汉语 zh;同理,如果是日中词典,则输入为日语 ja,输出为汉语 zh。
* 提示:language
标签中的“语言代码”需符合 RFC5646 标准(来源),如 en
、zh-CN
,DictionaryInLanguage
和 DictionaryOutLanguage
标签中的“语言代码”需符合 ISO 639-1 标准(来源),如 en
,可附加区域性代码,如 en-us
。
修改完毕后,另存为,文件名不要改动,在“编码”选项中选择“UTF-8”,然后点击【保存】按钮。
* 提示:在此步骤中使用 tab2opf.py 进行转换可能存在变形词无法识别、词典过大的问题,为达到更好的转换效果,Windows 用户可以尝试网友开发的转换软件 MDictindle。
4、将 MOBI 源文件转换成 MOBI 文件
把 mobigen.exe 拷贝到“oa8”文件夹内。把刚才生成的那个 .opf 文件拖放到 mobigen.exe 文件上,mobigen.exe 就开始将 MOBI 源文件转换成 MOBI 文件了,转换所需时长根据字典大小而有所不同。
最终得到的 MOBI 格式文件就是转换好的字典文件了。将其拷贝到 Kindle 中即可使用。
注意,在转换的过程中会出现类似“Warning(prcgen):Some syntax error happend in a script …”或“Error: Unexpected token found”之类的提示,这是因为源文件中有一些 javascript 脚本,在转化的过程中被 mobigen 忽略掉了。经过测试不影响最终生成字典文件的使用。
三、已知问题
通过此方法转换的字典,其查询是严格匹配,不支持模糊检索,所以会导致单词变形无法匹配。
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/308.html
延伸阅读
- [2024.11.12] Kindle 阅读器固件升级至 5.17.1.0.2
- [每周一书]《大脑帝国》大脑的使用说明书
- [每周一书] 经典文学《一个陌生女人的来信》
- 周保松:我多年来的一点读书体会
- Kindle Comic Creator:亚马逊官方漫画转换工具
- [2015.02.13] Kindle 阅读器系列产品固件升级
- [每周一书] 小说集《鹿川有许多粪》夹层中的普通人
- Calibre 常用命令行工具详解之 calibre-smtp
- [每周一书]《错不在我》我们是如何为自己找借口的?
- Calibre 使用教程之通过邮箱一键推送 Kindle 电子书
- Calibre 使用教程之为电子书添加更换字体
- 如何为 Kindle 电子书添加嵌入多种自定义字体
- [每周一书]《倦怠社会》数字时代的精神状况
- Kindle Paperwhite 6 愿望清单:所有我希望看到的新特色
- [每周一书] 从《乡土中国》理解中国传统社会
站长好,请问转换英汉双解(前部分en-zh,后部分zh-en)的字典时input and output language怎么修改呢?谢谢
字典好像不能同时设定两种输入输出,英汉双解推荐用 en-zh。
我用python转换完 文件夹里只有html文件 没有 opf文件呢
同没有opf文件,求帮助。
见笑了,连用cd命令定位都不会,琢磨了老半天….
不喜欢宋体,可以把语言EN改成zh,就变回了我最喜欢的圆体(●´ω`●)ノ
站长大大你好,我用你的方法转了好几本词典,其他词典都很好,只有一本词典能打开但是一翻页就死机,而且这本词典体积并不算太大。请问是什么原因呢?谢谢~
站长大大,请问我成功转成mobi了但是放kindle里没有找到这是为什么,我是直接数据线放documents文件夹里的。
何大大 您好。字典是在字典收藏夹里。
站长你好,请问■ A. D.中间那个黑色方块还有【例如】Still这两个大括号是不是乱码?
站长你好,请问mobi格式的文件如何转换成mdx格式的词典呢?(最好能保留图片什么的)我想导入欧路词典。
https://pan.baidu.com/s/1skQjRch#list/path=%2F
这是源文件,方便的话能否麻烦站长转换一下?十分感谢。: )
Jimmy 您好。抱歉,因为 Kindle 不支持 MDX,所以没有研究过。
300m的txt转mobi需要多长时间?(中国大百科全书)
一直卡在kindlegen“解析文件0000008”这块儿……
两个小时了……
等了一下午终于有反应了……
mdd文件里的图片不能一同转为mobi吗?
三丰 您好。原格式包含的图片转换后是会保留的。
第二步转换成txt文件后,打不开
608090110 您好。打不开有什么提示吗?请尽量完整地反馈信息,以便帮您判断问题。
请问 最后一步“把刚才生成的那个 .opf 文件拖放到 mobigen.exe 文件上”打不开 程序闪了一下就没有了怎么办
还有之前用命令提示符的时候最后有点乱码有关系吗
谢谢
六佰 你好。根据您提供的信息,不太好判断问题出在什么地方。建议把您修改的源文件发到 Kindle 伴侣的邮箱(可在页面底部找到),帮您检查一下。
你好,我想把kindle的mobi格式的词典提取出词典源文件dict,idx,ifo三个文件,或者反过来生成MOBI 源文件,,要怎么做啊??
陈醒 您好。您的目的是什么?是想把 mobi 文件变成 Kindle 字典吗?
你好,我现在想把两本mobi字典合在一起,我先通过KindleUnpack把两本字典的源文件提取出来,然后再用Mobipocket 将两本字典的htlm文件合在一起,生成一本二合一的字典。不过我发现新合成的字典,只有第一本字典支持模糊搜索,第二本字典却不支持模糊搜索了(原来两本字典都支持模糊搜索的)。我第一本字典是韦氏高阶,第二本是现代英汉,二合一后,当我点击查词比如changed这个词,韦氏高阶会查出change的单词给我,现代汉语却没有显示。。。只有当我点击change查询时,两本字典都会显示出意思来。。。。。。明白我说的意思吗。
对于把两个字典和在一起的做法,没有尝试过。但是模糊匹配的问题本文已经说明。通过此方法转换的字典存在不支持模糊检索的情况。也就是说查询的某个单词的变形,字典里面必须相应的设置了这个变形单词。
如下所示,这段代码时取自 Kindle 官方字典“现代英汉词典”,它对设置了 change 的各种变形,如 changed、changes 等,所以在查询 change 或其变形时都会显示 change 的词义。
但是有些字典默认确实是支持模糊检索的,而且 Kindle 的官方文档也是说支持,但是拆解后再用 Mobipocket 或 KindleGen 重新生成后,实际测试却不支持,目前还不知道确切原因。
你用的是什么代码编辑器啊,,,我想打开词典源文件HTML进行编辑,结果发现那个文件太大了打不开,很卡
编辑器是 Sublime Text,文件比较大的话打开需要一段时间。
kindlefere:我把朗文双解(网上根本没有朗文双解kindle字典-英&汉.mdx格式)传上来了:http://pan.baidu.com/s/1i5xwnOD
能否看看到底能不能转换,若能就帮忙转换下可以么?造福大家
1.我不知道源文件到底是什么后缀,总之有个txt是最大的58兆,utf-8格式是对的
2.最后那部,拖过去后,那个程序闪了一秒(打开弹出闪现,一秒后就消失了),之后什么事都没了
不知道哪里出错了?
把刚才生成的那个 .opf 文件拖放到 mobigen.exe 文件上,mobigen.exe 就开始将 MOBI 源文件转换成 MOBI 文件了———-之后就没反应了,是哪里没做对吗?
JD 您好。如果从 MDX 格式转换出来的源文件比较大,在使用 KindleGen 转换时需要耐心等待。如果很长时间(比如两三个小时)还没有反应,就关掉重试了。
我只想要这里面的维基百科。。。
http://www.pdawiki.com/forum/forum-70-1.html