Kindle 電子書簡轉繁

前天在網路上看到一則消息,原來現在中國 Amazon 每週都會有六本的電子書限免。看了一下就下單其中 3 本:莫泊桑的《漂亮朋友》、費曼的《走近費曼叢書 QED:光和物質的奇妙理論》以及毛姆的《木麻黃樹》。同時也瞄到京極夏彥的「巷說百物語」竟然也有套書,而且算是特價,順手也買了下來。

這一陣子大概都以閱讀紙本書為主,似乎很久沒再翻看 Kindle 上的電子書了。其中一個主要原因應該也是有點懶吧。畢竟不管在 Amazon 購買的(或是網路上可以搜尋得到的電子書),基本上還是簡體書占大宗。雖然閱讀簡體對我來說並不是問題,但總是少了點看書的暢快感。

其實在網路上也有高手開發程式,架了個網站免費提供這樣的服務:天火藏書。操作上也相當便利直覺:轉碼、轉檔、直排一氣呵成,成品效果在 Kindle 上閱讀也想當不賴。

不過我實際試轉了幾本書後,還是有些限制:偶而會有無法判定編碼而失敗、上傳檔案大小限定在 20 MB、簡轉繁似乎會有些字詞轉換的誤失、轉檔後的電子書註解連結失效、會自動產生章節卻可能與原書編排不符…等。

也許我個性是龜毛了點,於是索性決定自己動手好了。為了瞭解整個天火轉檔的過程,找了個小工具拆了電子書。拆後的電子書其實就是一大包的原始素材檔:HTML、CSS、圖檔。有了原始檔,不管是簡繁的轉碼或是直排的編輯當然就不是問題了。

同樣把天火轉檔後的電子書拆成原始檔,檢視對照後發現,其實程式的流程也就是解壓、轉碼、替換文本內直排符號以及套用開發者已設定好的直排 CSS 樣版,重新再打包成 mobi 電子書。

於是,在幾次的動手實作後,大概也整理出一個流程和會用到工具:

  • 由於在 Amazon 買的電子書一定有 DRM 的保護,首先當然要去除才能對電子書進行任何的操作。這倒也不是什麼難事,網路儘多這類的小工具,例如我用的這個 DeDRM。由於是自購的書,當然就是用自家的 Kindle 硬體序號來解除 DRM(嚴格說來這可是不合法,不過只是想自力救濟,所以,咳~)。

  • KindleUnpack 小工具(須要 Python)將電子書拆成原始檔。拆完的電子書會有 HDImages、mobi7 以及 mobi8 這三個目錄,主要作業就是針對 mobi8 這個目錄。

  • 將文本由簡轉繁。這邊我是用網路上的 OpenCC 這個開放的轉碼工具。由於也進 Homebrew 的套件資源庫,所以直接用 Homebrew 來安裝。因為轉檔還得包括標點符號的轉換(像是括號要換成全型的,以免轉直書後不合排版),這邊我是直接用 script 來做:

for file in *.{ncx,opf,txt,xhtml,html} ; do
	sed -i '' 's/zh-CN/zh-TW/g' $file
	sed -i '' 's/zh-cn/zh-tw/g' $file
	sed -i '' 's/(/︵/g' $file
	sed -i '' 's/)/︶/g' $file
	sed -i '' 's/[/︹/g' $file
	sed -i '' 's/]/︺/g' $file
	sed -i '' 's/【/︻/g' $file
	sed -i '' 's/】/︼/g' $file
	sed -i '' 's/“/﹁/g' $file
	sed -i '' 's/”/﹂/g' $file
	sed -i '' 's/‘/﹃/g' $file
	sed -i '' 's/’/﹄/g' $file
	opencc -i $file -o $file.new -c s2tw.json
	mv $file.new $file
done
  • 編輯原始的 CSS 檔,加上直排的定義:基本上就是用 CSS 的 writing-mode-webkit-writing-mode-epub-writing-mode 這幾個定義。修改的地方主要是在 content.opf,將 dc:language 的 zh 改為 zh-tw:
<dc:language>zh-tw</dc:language>

將 meta 的 primary-writing-mode 由橫式的 horizontal-lr 改為直式的 vertical-rl

<meta name="primary-writing-mode" content="vertical-rl" />

再來就是將 Styles 目錄下的各 CSS 檔加上直書的樣式定義:

body {
	margin: 5%;
	text-align: justify;
	-webkit-writing-mode: vertical-rl;
}
  • 最後用 Amazon 官方的 kindlegen 這支程式將原始檔重新打包成 mobi 電子書。因為 Homebrew 上也有,所以我仍是用 Homebrew 來安裝。

  • 丟入 Kindle,打完,收工。

果然繁體加上直書又保留原出版商的排版設定,看來就是舒暢。

簡轉繁後的《巷說百物語》扉頁:左為原簡體橫書,右則是轉繁體直書。
簡轉繁後的《巷說百物語》內文:左為原簡體橫書,右則是轉繁體直書。

話說回來,用程式做簡轉繁畢竟還是會有些誤判的字詞(簡繁常有一對多的狀況,須要再做前後文的對照),除非要人工再次對校稿。不過還好的是人在閱讀,所以閱讀當下還是可以即時在腦袋裡自動修正的。

紙本書當然有紙本書無可取代的觸感及閱讀樂趣,但電子書的便利卻也是有它的優點及適合處。想著忍不住還是要嘆口氣:台灣市場或許不大,Amazon 大概也沒想進來;本土出版社則是一人一把號,各吹各的調,於是消費者還是得自求多福啊……

Photo by freestocks.org / Unsplash