为什么 Kindle 调用的字体和电子书语言不匹配

在给 Kindle 电子书切换字体时,可能会遇到这样一个问题,如下图所示,明明是一本中文电子书,设置字体时 Kindle 调取的却是英文字体,反之亦然。这是为什么呢?

chinese-ebook-english-font english-ebook-chinese-font

一、问题分析

Kindle 内置了三套字体,分别应用于“简体”、“繁体”和“英文”,对它们的调用是由电子书中的一条定义语言的元数据决定的。制作过 Kindle 电子书的小伙伴可能留意过,在电子书源文件的 .opf 配置文件中,头部 <metadata> 标签内有类似下面这样一行代码:

<dc:language>zh</dc:language>

这就是那条元数据了,<dc:language> 中的语言代号指定的是哪个语言,Kindle 就会调用和此语言相匹配的那套字体。下面是常用的三种语言代号和语言的对应关系:

  • zhzh-cn:对应“简体中文”,调用简体中文字体
  • zh-twzh-hk:对应“繁体中文”,调用繁体中文字体
  • en:对应“英文”,调用英文字体

二、如何修改

了解了原理就容易修改了。这里提供两种修改方法,可以根据自己的具体需求选用。

方法 1、使用 Calibre 修改

首先,把需要修改的电子书拖入 Calibre 书库,鼠标右键单击这本电子书,在弹出的菜单中依次选择“编辑元数据 -> 逐个修改元数据”,在弹出的“编辑元数据”窗口底部找到“语言”这一项,点击其后的下拉框,在弹出的列表中即可选择想要改成的语言(当然也可以直接输入“中文”或“英文”)。

然后,再次鼠标右键单击这本电子书,在弹出的菜单中依次选择“转换书籍 -> 逐个转换”,在弹出的“转换”窗口中选择输出格式,如 azw3 或 mobi。注意,如果选择了 mobi 格式且想要保持原有排版样式,别忘了进入“MOBI输出”设置项,把里面的“MOBI文件类型”更改为“both”。

最后,点击【确定】按钮开始转换,得到的电子书就能调用相匹配的那套字体了。

* 注意,对于中英文的修改,使用此方法没有问题,但是若想修改简繁体中文,就行不通了,因为 Calibre 貌似不支持直接输入的语言代号,这就需要使用下面这种修改电子书源码的方法了。

方法 2、修改电子书源码

在开始下面的步骤之前请先下载 KindleUnpack教程)和 KindleGen教程)这两款软件。

首先,用 KindleGen 把 Kindle 电子书拆解成源文件,使用代码编辑器(如 Sublime Text、Editplus 之类)打开 content.opf 文件(如果是拆解的 azw3 或 mobi8 格式的电子书,此文件的路径在“电子书文件名/mobi8/OEBPS/content.opf”,mobi7 格式的电子书此文件的路径在“电子书文件名/mobi7/content.opf”)。

然后,在代码的头部找到 <dc:language> 标签,然后参考本文前面提到的语言代号对应关系,把其中的语言代号改成和电子书实际语言相匹配的,然后保存一下文件。

<dc:language>zh</dc:language>

最后,使用 KindleGen 通过配置文件 content.opf 把源代码转换成 mobi 文件即可。生成的 mobi 格式和 azw3 格式没区别。当然如果你就是喜欢 azw3 后缀,也可以用 Calibre 软件再转换一次。

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

发表评论

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

小伙伴们发表了 2 条评论