为什么 Kindle 调用的字体和电子书语言不匹配
在设置切换 Kindle 电子书字体的时候,你可能会遇到这样一个问题,如下图所示,明明是一本中文电子书,设置字体时 Kindle 调取的却是英文字体,反之亦然。为何电子书语言和字体不匹配呢?
一、问题分析
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 软件再转换一次。
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/433.html
“Kindle小技巧”相关阅读
- 如何修改 Kindle 字体设置中的默认字号大小
- 微软已解决 Kindle 连接电脑出现的蓝屏问题
- 隐藏在 Kindle 系统中的那些鲜为人知的命令
- BookDrop:用 Dropbox 自动同步电子书到 Kindle
- 亚马逊 Kindle 阅读器使用技巧大全
- 周末动手DIY:用旧书封面制作一个 Kindle 壳
- 很常用!隐藏在 Kindle 中的几个便捷操作
- Kindle 使用小技巧之用收藏夹分类电子书
- Windows 10 周年更新后连接 Kindle 蓝屏问题
- 如何关闭和去除 Kindle 屏保和主页的广告
- 调节 Kindle 屏幕背光为何要在亮光环境下调亮
- 亚马逊官方微博发布的 KPW2 使用小窍门
- 如何更改阿拉伯语、维吾尔语电子书的文字方向
- Kindle 新界面中容易让人迷惑的几处小变动
- 只需重启 Kindle 即可解决的一些小故障
版主您好, 看完这篇文章我认为非常有用,并且也已经成功更改普通书的语言。但是RSS源自动推送至kindle的这种如何更改语言呢?我并未在Calibre的“获取新闻”中见到设置,如果是按照本文方法就只能设置单次推送的新闻,之后推送的依然是错误的语言设置。这种情况我该怎么办呢?
你好,題主。我有個類似問題。自從去年更新了kindle韌體後,所有之前的書籍都無法選擇宋體、黑體等正體字,轉而變作了宋体、黑体等簡化字字庫,雖然文字能夠顯示,但所有標點符號均出現了問題。不知該如何解決?謝謝!
这应该是一个 BUG,原来 SC 和 TC 是分离的,Kindle 可以根据电子书中的元数据自动识别,分别调用各自的字体,但是现在貌似合并在一起了。
这个问题有两种解决方案。一种是利用 Kindle 的自定义字体功能,把 Kindle 中的四种 TC 字体(下载)拷贝一份到 Kindle 根目录的 Fonts 文件夹中并重启一下 Kindle,然后在字体设置中选用该字体,这样使用的就是真正的 TC 字体,不会出现标点符号的问题了。另一种需要越狱 Kindle 并安裝 Font Hack 插件,将 Kindle 的字体配置成 TC 字体(参考)。
以上只是变通的做法,想要彻底解决这个问题,还是需要 Kindle 团队来修正,或许他们没有意识到中文是有差别的,你可以通过 Kindle 设置中的“帮助和用户指南”向他们反馈这个问题。
太好了,回去就試一下,屆時再來彙報!
版主,根據您提供的方法,將原生字庫複製入kindle,可以解決這個問題,當然這也帶來了其它問題。看簡體書時要切換回SC,否則會有系統黑体替換缺失的簡體字現象。再換回繁體書籍又要手動切換一下,只能說是權宜之計。非常感謝版主!看來要徹底解決還得靠亞馬遜官方了。發反饋給他們也沒有回應,唉!
但是我還有一個小發現!我在商店下載了兩本繁體書籍,水滸和三國,都是青蘋果數據中心製作的,兩本書的上冊識別為TC字庫,下冊識別為SC字庫,不知作何解釋?
我测试了一下青苹果数据中心的水浒传(ASIN:上 B00BLYZTVE,下 B00BLYZTZA)和三国演义(ASIN:上 B00BLYZTV4,下 B00BLYZTUU)这两部书,结果是 Kindle 系统调用的都是 SC。
确定你看到的“宋体”显示的是“宋體”嗎?可以把 Kindle 界面截图存到网盘,然后贴到这里来看看。
沒問題,下面是四張螢幕截圖,各對應以上書籍。
链接:https://pan.baidu.com/s/1PGlKMNjVoPaUdTHwxsSdsA 密码:42sv
我懷疑在元數據裡是否有個什麼參數,新版固件可以識別到,但是他們製作的時候並沒有注意到這個參數。但新版固件卻有差別的識別了。
我有一本中文书azw3,用kindlegen转完格式会乱码;如果用epubee转格式不会乱码,但是打开后字体设置只能用英文字体。按照您介绍的方法,把最先的没有经过任何转换的文档unpack以后,dc:language那行代码果然是en,改成zh再用kindlegen转换还是变乱码。请问怎么解决?
此问题已解决,点击这里查看详情。
使用calibre修改时出现“calibre, version 3.34.0
錯誤: 不明的語言: 無法識別語言:中文”没有办法修改成中文……该如何解决呢?
这个问题只有在把 Calibre 的界面语言设置为“正体中文”时才会出现,设置成“简体中文”就正常了。这好像是 Calibre 的一个 BUG。
为了这个问题,折腾两天了,终于发现怎么解决了。
之前也出现这种情况,后面问群主用方法一解决了。