金灵异

 找回密码
 立即注册

搜索

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

kindle用户
kindle用户  发表于 2018-11-24 11:34:10 |阅读模式
  在给 Kindle 电子书切换字体时,可能会遇到这样一个问题,如下图所示,明明是一本中文电子书,设置字体时 Kindle 调取的却是英文字体,反之亦然。这是为什么呢?

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

  一、问题分析

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

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

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

  zh 或 zh-cn:对应“简体中文”,调用简体中文字体

  zh-tw 或 zh-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 软件再转换一次。

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站所有内容均来自网友分享,不代表本站任何观点。

© 2019 jinfopai.com

快速回复 返回顶部 返回列表