Pages

Sunday, August 14, 2011

为Kindle自制 Mobi 格式英英辞典

Kindle入手一个月了,真是好东西,和在电脑上相比,更能静下心来阅读。自带的查英文字典功能也非常适合英语学习。美中不足的是自带的两本牛津英英辞典有点太难,不太适合我的英语水平,本人更喜欢Longman这样比较简单的英英辞典。网上有网友放出不少自制辞典,其中就包括了Longman等,但是由于是从别的格式转过来的,不太适应Kindle,非常多的词无法自动取词。故痛下决心,决定自制Longman字典。

由于担心涉及版权问题,细节就不说了,下面只说说思路:

Longman字典自带电子格式,很早以前,我就研究过它的v4版本,想转一个Babylon格式的,最后也是不了了之,不过对格式的解析到时有一定基础了。是从下面这个日本人的转换脚本里学来的:
http://hp.vector.co.jp/authors/VA005784/longman4/ldoce4conv.html
(此人用的是Ruby,想当年为了看懂这个脚本,还学了一阵子Ruby。)

此脚本对应的是V4格式。目前网上最新的是V5,和这个略有不同,但是思路是一致的。
将Longman的压缩包解开后,可以得到每个词条一个xml。内容大体就是显示的内容,还包括了词的变化形式(Inflection),这个正是Mobi辞典取词的关键信息。

得到原始信息后,开始转换成Mobi格式。Mobi格式其实是一些html文件+资源文件+OPF源信息文件,通过OPF文件控制mobi格式的生成。最早是读了一遍亚马逊官方的 Amazon Kindle Publishing Guidelines,对字典格式只有只言片语,又去研究epub规范,发现根本没有提到Mobi字典的格式。原来这个是Mobi特殊格式,和epub无关。最后在mobipocket的开发文档中找到了例子。看了例子,一切都明白了。
http://www.mobipocket.com/dev/article.asp?BaseFolder=prcgen&File=advancedbooks.htm

源格式,目标格式都清楚了,后面就简单了。写个程序生成html,配合例子的OPF文件稍加修改,用亚马逊官方的kindlegen工具生成。生成后的mobi文件可放到Kindle Previewer上预览(这工具真不错,效果很像),几经调整,终于得到了可用版本的Longman字典。

相比网上下的Longman,效果好的多:
  • 取词基本正常,加入了各种变化。
  • 音标也正常,网上的版本,音标转换成了金山字体,此字体害人不浅,音标转成这种字体对应格式后,在各种辞典里都不能正常显示。Longman自带的Unicode编码的音标不需要转换就能在Kindle上完美显示。

1 comment:

Yanga said...

我也為kindle 的字典苦惱一陣子,已買的LDOCE有電腦版(紙本字典所附的CD), iphone/ipad版。但就是不知要如何轉至kindle. 看版主的文章,似乎還要學個Ruby語法,看來只有放棄了。上面的Oxford 將就用了 。

Post a Comment