因為 Calibre 支援了太多的裝置,作者並不打算解決傳入非英文檔案會被轉成英譯的問題。雖然使用上並無什麼不方便之處,但偶爾強迫症發作,還是會想看到中文檔名。

calibre 作者沒有打算增加傳送至裝置的非英文字元轉換功能,討論串在此。
目前沒有最快最方便的解決方式,唯一的方式是走保存到磁碟,保存磁碟的設置可以把將非英文轉為英文同義的選項取消(如下圖),但這樣代表還要自己手動轉檔、儲存,再丟到裝置裡,步驟繁多。
如果使用了 KoboTouchExtended 這個外掛,更是無法走同樣的流程了。

最後的想法是去找原始碼來改,改完後重新 build 出 .exe/.dmg 檔的方式來破解,可惜發現要建制 calibre 也不是件簡單的事,如官方文件所說,環境必須是 linux,若想用 windows 或 macOs,都要用虛擬機。
再來還有參考這篇,他提供了修改後的安裝檔(且只有 macOs 的),但這個改法只支援到 5.1 版。
後來亂找,終於找到了開發者模式!!
寫這篇時,最新的 Calibre 是 6.3 版。
目前簡單測試,看起來沒有造成任何問題,如果有發現錯誤,也歡迎告知,但不一定會解。
步驟如下:
以 windows 為例,macOs 不另外寫,但做法大同小異,可以參考官方文件開發者環境。
Step 1: 按照官網正常安裝 Calibre v6.3
官網網址: calibre — Download calibre (calibre-ebook.com)
Step 2: 抓原始碼
- 會 git 的可以直接 git clone,然後直接跳到 Step3
git clone https://github.com/kovidgoyal/calibre.git
- 不會的 git 的
到 kovidgoyal/calibre 這下載 .zip ,解壓縮到自己選定的位置。
(Release version 6.3.0 · kovidgoyal/calibre · GitHub)
下載方式:(擇一即可)
- 按照下圖紅色步驟下載 .zip
- 從黃色圈起來那進去,找到對應的版本,列表裡會有
Source Code(zip)
的字樣,點選下載。

Step 3: 改環境變數,讓檔案執行的路徑是原始碼的位置

新增環境變數,變數名稱為 CALIBRE_DEVELOP_FROM,值則為第二步下載的原始碼裡的 /calibre/src 這個路徑,例如:G:\Project\calibre\src

試試看有沒有成功,win+R
,執行 cmd。
在 cmd 裡打 echo %CALIBRE_DEVELOP_FROM%
,確認位置要與剛剛設定的是一致。沒有成功的話,可以把使用者變數也加上一組一模一樣的試試。

Step 4: 改原始碼
找到 src/calibre/utils/filenames.py,修改 ascii_text 回傳的值即可。
另外在上面新增一句 print('確認有修改到!!!!!')
,這只是為了確認有正確執行到修改後的檔案。

Step 5: 確認執行
再次打開 cmd,執行 calibredb
,確認看看有沒有把那句確認有修改到
印出來,成功的話,就直接把 calibre 開起來即可使用。
目前不知道這一步,到底有沒有需要執行,因為有時候沒改成功,回來執行完這句,就又可以了。

Step 6: 完成
成功示意圖,把一個名為測試的 epub,放進書庫,然後執行傳送至裝置,再至裝置查看,檔名是中文的囉,也有成功轉成 .kepub.epub!

Calibre 更新!
隨著 Calibre 更新
如何隨著 Calibre 更新仍持續保持中文檔名
方式 1:適合當初下載 source code 是使用 git 的人
- 進到原始碼的資料夾,直接在 master
git pull
即可
> 這個有機會拉到作者還在修正的 code(機率不大),較好的方式:
> git checkout master
> git pull
> git checkout tags/<tag_name> -b <tag_name>
<tag_name> 看自己要更新的版本是哪個,就在下圖 tags 的地方找到對應的版本。

- calibre 的應用程式則是按照官網步驟更新至最新,或是自己要的版本。
- 結束,直接使用。
方式 2:當初是下載 .zip 解壓縮的人
下載對應版本原始碼,載點 Releases · kovidgoyal/calibre (github.com),這是所有版本列表,找到自己要的下載即可。
- 按照官網步驟將應用程式更新對應版本
- 重新操作 step2、4、 5 步驟
目前不管更新到哪一版都還是可以繼續用上述的方式完成,但發現有些人可能會遇到 E-book viewer 閃退的問題。
解:
E-book viewer 閃退,先試試在安全模式下會不會有一樣的問題,如果在安全模式下可以正常開啟,表示跟已經在執行的程式衝突了,唯一的解法就是找出衝突的程式,在使用 calibre 時把他關閉。
如何找衝突的程式:打開工作管理員,開機就執行(背景執行)那個 tab,把所有已啟用的一個一個關掉嘗試。