修复第三方 Kindle 字典释义显示不全的问题

最近 Kindle 伴侣的字典下载留言区有小伙伴留言反应第三方字典无法显示的问题比较频繁,所以 Kindle 伴侣有针对性的对该问题进行了排查和解决,并提供了修复后的字典文件下载。

fix-kindle-dictionaries

因为精力有限,不可能将所有第三方 Kindle 字典全部修正一遍。如果你有动手能力,可以按照本文提供的思路或方法自行解决。还可以顺便将修复后的字典文件传到网盘,然后在留言区将下载地址提交给 Kindle 伴侣,以造福更多小伙伴。如果你没有动手能力,也可在本文下方的留言区提交求助,Kindle 伴侣将根据需求不定期放出修复后的字典文件下载。

目录

一、为什么第三方字典释义会显示不全
二、如何修复第三方字典显示不全的问题
1、提取字典源文件
2、修改源文件代码
3、重新生成字典文件
三、已修复的第三方 Kindle 字典下载列表

一、为什么第三方字典释义会显示不全

第三方 Kindle 字典释义显示不全的具体表现为在使用字典查询词条时,遇到内容比较多的释义需要滚动下翻页时,释义内容只显示一部分,后面的内容就被截断不显示了,有的甚至干脆就没有下翻页的滚动条。词典中的内容可以正常看到。这是什么原因导致的,又该怎么解决呢?

Kindle 伴侣曾写过两篇从零开始制作 Kindle 字典的文章,一篇是面向新手的《自制 Kindle 字典简明教程(入门篇)》,一篇面向老手的《自制 Kindle 字典简明教程(进阶篇)》。从文章里可以看出 Kindle 官方提供字典源代码是经过标准化的,而第三方 Kindle 字典大多是从其他格式转换而来的,里面的代码相对于 Kindle 来说可能就是“不标准”了,所以想要解决第三方词典释义显示不全的问题,就是按照官方字典的格式去修正第三方字典的源代码。

二、如何修复第三方字典显示不全的问题

修复字典的显示问题的原理很简单,就是把第三方字典的源代码提取出来,然后用编辑器(推荐使用 Sublime Text)按照官方字典源代码格式或参数修改一下。当然因为字条量比较大,没必要处理的和官方字典一样整洁,只需要把下面将要说的几个必要的部分修改一下即可。

1、提取字典源文件

Kindle 字典的所谓源代码其实就是一份简单的 HTML 格式文档。那怎么样获取到字典的源代码呢?可以使用一个叫做“KindleUnpack”的软件。该软件有 Calibre 插件版本,只需要打开“首选项”的“高级选项”下的【插件】,然后点击【获取新的插件】,在弹出的窗口中的“Filter by name(按名称过滤)”一栏输入“KindleUnpack”就能找到,选中它,点击右下角的【安装】按钮安装。安装完毕后会弹出的提示窗,点击【现在重启 Calibre】按钮,重启后即可成功安装。

接下来把字典文件拖放到 Calibre 中。选中字典,点击软件右上方操控区域的那个 KindleUnpack(黄色的三角按钮图标),在弹出的菜单中将鼠标悬浮到带有绿色小锁的菜单,然后点击弹出的菜单“Unpack MOBI”(如果是 AZW3 文件会显示“Unpack AZW3”)。接着会让你选择输出文件夹,选择指定文件夹后,点击【Open】按钮,稍等片刻(根据文件大小不同处理时间长短不同),Kindle Unpack 把把 mobi 或 azw3 文件“肢解”完毕了。这样就可以得到一份名为 mobi7 的文件夹(目前 Kindle 字典都是 mobi7 标准),在该文件夹下通常会有以下三份文档:

├──── images
    ├──── images and cover ...
├──── book.html
├──── toc.ncx
├──── content.opf

这些文件的含义不懂的可以参考那两篇字典自制教程。这里我们只需要关注 book.html 和 content.opf 这两个文件。一般从字典文件中拆出来的 HTML 文档比较大,所以这对你的电脑性能是个考验,如果 CPU 和内存不够强劲的话,下面的修改操作将会变得很艰难(当然也可以采取比较灵活的处理方法,比如使用文件分割软件把大文件分割成小文件再分别处理)。

2、修改源文件代码

首先用编辑器打开 book.html,然后利用正则表达式,按照官方字典的 HTML 结构把文档的代码“标准化”一下(官方字典的 HTML 结构请参考自制教程进阶篇)。注意,为了节省时间和提高效率,没必要把所有的代码全部标准化以便,只需要按照下面 Kindle 伴侣总结出来的要点即可。

确保词条都被 <idx:entry scriptable="yes"> .. </idx:entry> 包裹着,需要特别注意的是,一定要带有 scriptable="yes" 这个属性,该属性控制滚动条的显隐,不带的话没法上下翻动。这一条其实就是导致第三方字典显示不全的最根本原因。然后每个词条之间可以使用 <hr/> 隔开,也可以使用 <mbp:pagebreak/> 把每个词条分页显示。其他代码改不改不重要。

接着就是编辑 content.opf,同样按照自制 Kindle 字典进阶教程中的代码格式修改一下。需要特别注意的是,要把 <output encoding="utf-8"/> 这行代码写进去,不然如果字典源代码中有特殊字符的话可能会导致无法正常显示。另外如果你想要对比两个字典的效果,就把 <dc:Identifier id="uid">02FFA518EB</dc:Identifier> 这一串字符修改一下吧,随便改一下即可,以免被 Kindle 把修改前后的字典识别成同一本。其他代码可改可不改,但最好按照教程中的格式来。

3、重新生成字典文件

修改完毕保存一下,然后下载名为 Mobipocket Creator 的软件(该软件在自制字典教程入门篇中提供了下载)。该软件只能在 Windows 下使用。安装完成后,直接双击刚才编辑的那个 content.opf 文件就可以打开。什么都不需要设置,依次点击菜单栏“Build -> Build e-Book”或点击界面上方靠右的【Build】图标按钮调出生成界面,然后点击下面的【Build】按钮,进度条到达 100% 即生成完毕并切换到另外一个界面。选择“Open folder containing eBook”,然后点击【OK】按钮,会打开项目文件夹,会看到一个后缀名为 content.prc 的文件。这个 prc 文件就是已经修复好的字典文件了。重命名一下,拷贝进 Kindle 中即可使用。

* 可能有小伙伴比较纳闷,为什么不直接用 KindleGen 生成呢?进阶教程里不是实用的 KindleGen 吗?经过测试,不论在 Windows 还是 Mac OS X 系统下,KindleGen在处理比较大的 HTML 文件时会假死,CPU占用 100%,运行了一个小时没有任何反应,倒是 Mobipocket Creator 生成很快。其实 prc 和 mobi 文件没啥区别,把后缀名改成 mobi 也能用。

三、已修复的第三方 Kindle 字典下载列表

下面是已修复字典的下载列表(为了区别今后的修正添加了版本号):

  1. 牛津高阶英语词典(英英&英汉双解)(第七版)修复版.prc(由网友“b2rmax”提供)
  2. Collins King Mixed Dictionary – Fixed.prc (由网友“栾涅”提供)
  3. Eric’s English Chinese Dictionary with CALD – Eric Dong – Fixed(由网友“栾涅”提供)

欢迎更多小伙伴加入进来,把你喜欢的字典进行修复,然后再分享给更多小伙伴。

有帮助,[ 捐助本站 ] 或分享给小伙伴:

发表评论

标注为 * 的是必填项。您填写的邮箱地址将会被保密。如果是在本站首次留言,审核后才能显示。
若提问,请务必描述清楚该问题的前因后果,提供尽可能多的对分析该问题有帮助的线索。

小伙伴们发表了 40 条评论

  1. Cambridge Advanced Learner’s Dictionary + 简明英汉词典修复版

    http://pan.baidu.com/s/1o79PjE6 密码fjbh

    由于我的百度盘空间有限,随时都可能被其它文件取代。请站长把它移到本站后,删除此链接。

        • 你好,Cambridge Advanced Learner’s Dictionary – Fixed我今天下载的,用字典的时候显示无法找到释义了,请问是又出现不兼容了吗

          • 你好,我只是按照站长的修改教程来修复,我自己用却没有问题,反应有问题的好像还没有,可能你的情况有点特别。如你能更详细地说明一下具体情况,也许站长或其他高人能指点一下迷津。

  2. 还有本edong.dic词典也挺好的,也是英汉双解,是cald的,支持变形,可惜也是显示不全,希望有大神能够修复下

  3. Collins King Mixed Dictionary – Fixed.prc (柯林斯英英和金山词典英汉的合并,等于是双解) 修复版

    http://pan.baidu.com/s/1mhCBfhY 密码am2x

  4. 我依照这篇文章的说明,把Collins King Mixed Dictionary (柯林斯英英和金山词典英汉的合并,等于是双解)修复好了,在Kindle Touch试验,感觉上没问题,需要网友检阅。只是不知如何上传?

    • 栾涅 您好。感谢贡献。您可以先上传到百度网盘,然后分享一个链接贴到这里即可。或者把文件发送到 Kindle 伴侣的邮箱(邮箱可在页面底部“联系”处获取)。

      • 我想这部字典的问题主要是下还有很多释义等,把移到前就解决了。等下我会给一个百度盘的链接。

      • 我想这部字典的问题主要是“/idx:entry”下还有很多释义等,把它移到“hr/”前就解决了。等下我会给一个百度盘的链接。

  5. 为什么我用mobi creator 生成mobi的时候运行到59%会出现runtime error, program C:progra。。。。。错误,求解答,求帮助

  6. 希望有人能把38m的那个柯林斯双解也修复下,那个词典能识别变形,也是显示不全

  7. 谢谢楼主分享的步骤,我非常喜欢这个字典所以试着用AGID加了复数和动词变形

    http://pan.baidu.com/s/1mh5Ogoo

    • b2rmax 您好。请问能否分享一下“用AGID加了复数和动词变形”的具体方法?因为有不少第三方字典在转换的时候存在词形变换和复数无法识别的问题,如果您能提供此方法,将会帮助很多为此感到困扰的小伙伴。谢谢!

    • 李社昌 您好。目前确实存在这个问题。虽然亚马逊官方文档说 Kindle 会自动匹配单词变形,但实测却没有成功,除了给单词添加复数形式,目前还没有找到比较好的解决方法。

  8. 感谢分享的步骤,可能自己还是做不到55555

    有一点发现的是kindle官方的那本The New Oxford American Dictionary和Oxford Dictionary of English内容基本一样,但NOAD带音标。唯一的缺点是NOAD在我使用的时候也发现常常有不能翻页的情况,无奈只有用ODE。

    kindlefere能不能把NOAD这本官方字典修复一下?

  9. 谢谢楼主,试用了一下,原来不能翻页的那一版词典是可以识别复数和动词变形的,修改后的怎么不行了呢?

    • jxt_hbtm 您好。不知道您是否是对同一本电子书、使用两个不同的字典进行的查询?这本字典本身是没有复数、动词变形等预设的,所以正常情况下查询单词的变形是不会出现释义的,您遇到的这种情况 Kindle 伴侣曾经专门写过一篇文章《查词时 Kindle 字典在中英文电子书中的不同表现》解释原因,感兴趣的话可以看一下。

      那篇文章的结论就是这和电子书的指定语言有关系,Kindle 对中英文语言的电子书的查询单词的处理机制好像不一样。对于指定语言为中文的电子书,查询单词的时候会判断并截词查询,而指定英文语言的电子书则只查询字典中预设的单词。

      • 显示不全的那个老版【牛津高阶英语词典(英英&英汉双解)(第七版)】确实是可以识别单复数、动词变形的,不管电子书的语言设置的是中文还是英文。

  10. 感谢站长!另外也想问几个小问题:为什么只要不是kindle自带的字典在kindle封面视图下有“字典”的标签呢?能去掉么?(好吧,这有点强迫症:D)还有为什么有很多字典换不了封面呢?(e.g.En_Britannica_Encyclopedia_2010.mobi)在Calibre中加了封面也没用?

    • compose 您好。词典之所以能够匹配时态、短语等是因为在字典文件中对这些单词的原形中做了预设。只可惜有些第三方字典没有预设,如果想要和官方字典一样匹配时态等各种形式,只能手动编辑这些字典。但对于普通用户来讲实现起来不怎么现实。如果对如何添加词条形态预设,可以参考这篇文章:https://kindlefere.com/post/178.html

      虽然目前 Kindle 本身不会检测单词的时态变形,但有趣的是,如果把电子书的指定语言更改成中文,Kindle 会以某种方式自动识别 ing、ed 这样的单词形式,但是像 went 这种非后缀的形态就无能为力了。感兴趣可以看看这篇文章:https://kindlefere.com/post/182.html