为什么 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 软件再转换一次。

未经允许不得转载:书路 » 为什么 Kindle 调用的字体和电子书语言不匹配

赞 (1) 打赏

觉得文章有用就打赏一下文章作者

微信扫一扫打赏