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

2019年1月22日01:40:30 发表评论 1,950 views

第三方字典常常有字典释义显示不全的问题,解决的方法如下

目录

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

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

1、提取字典源文件

2、修改源文件代码

3、重新生成字典文件

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

第三方 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 也能用。

 

  • 关注本站微信公众号
  • 与更多读书人交流
  • weinxin
  • 关注本站微信公众号
  • 添加读书群
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: