Ebook Translator:用 Calibre 翻译多格式双语对照电子书
- 添加“开启/关闭”翻译元数据的选项;
- 更新土耳其语界面翻译;归功于 @DogancanYr
- 修复因缺少命名空间导致的输出错误;
- 修复无法重试翻译失败条目的错误;
- 修复无法正确显示自定义引擎配置的错误;
Ebook Translator 是书伴开发的一款 Calibre 插件,可以将不同格式不同语言的电子书翻译成指定语言(原文译文对照)指定格式的电子书,支持 Google、ChatGPT 和 DeepL 翻译引擎。
在日常的生活、工作或学习中,如果在阅读或翻译外文电子书的过程中需要频繁使用翻译软件,在内容和翻译软件之间来回切换,可能会成为一件颇为痛苦的事。Ebook Translator 插件借力 Calibre 对电子书的强大处理功能和翻译引擎对多种语言的翻译支持,可以轻松将译文添加到原文段落之后,如下图那样形成双语对照,方便辅助对原文的理解或作为译制材料时的参考。
▲ Ebook Translator 插件翻译的电子书效果
借助 Calibre 对多种电子书格式的灵活支持,进行翻译时,你可以自由地选择输入输出格式,比如把 TXT 翻译成为 TXT 或 EPUB,把 PDF 翻译成 PDF 或 DOCX。
Ebook Translator 插件源代码使用 GPL v3 许可证。插件项目托管在 GitHub 上。
一、功能简介
★ Ebook Translator 插件主要包含以下功能:
- 支持“批量模式”和“高级模式”两种翻译模式,应用于不同使用场景
- 支持所选翻译引擎所支持的语言(如 Google 翻译支持 134 种)
- 支持多种翻译引擎,包括 Google 翻译、ChatGPT 以及 DeepL
- 支持自定义翻译引擎(支持解析 JSON 和 XML 格式响应)
- 支持所有 Calibre 所支持的电子书格式(输入格式 48 种,输出格式 20 种)
- 支持批量翻译电子书,每本书的翻译过程同时进行互不影响
- 支持缓存翻译内容,在请求失败或网络中断后无需重新翻译
- 提供大量自定义设置,如将翻译的电子书存到 Calibre 书库或指定位置
★ Ebook Translator 插件支持翻译的语言:
- Google 翻译支持的语言列表
- DeepL 翻译支持的语言列表
- ChatGPT 具体支持语言不详
- 有道翻译支持的语言列表
- 百度翻译支持的语言列表
★ Ebook Translator 插件支持的输入格式:
EPUB, AZW3, AZW4, MOBI, PDF, DOCX, TXT, MARKDOWN, RTF, RECIPE, HTML, HTM, XHTML, XHTM, TXTZ, CB7, ODT, RAR, FBZ, CBC, SHTM, TEXT, SHTML, POBI, UPDB, OPF, TCR, PML, PDB, CHM, SNB, LRF, LIT, RB, DOWNLOADED_RECIPE, CBR, DJV, DJVU, MD, AZW, TEXTILE, DOCM, HTMLZ, PMLZ, CBZ, ZIP, PRC, FB2,SRT,PGN
★ Ebook Translator 插件支持的输出格式:
EPUB, AZW3, MOBI, KFX, PDF, DOCX, TXT, RTF, OEB, TCR, PDB, SNB, LRF, TXTZ, LIT, RB, HTMLZ, PMLZ, ZIP, FB2,SRT,PGN
二、安装插件
首先确保你的操作系统已经安装了 Calibre,然后通过一下任意方式安装本插件:
【方法一】通过 Calibre 安装
- 打开 Calibre 并依次点击其菜单【 首选项… → 插件 → 获取新的插件 】;
- 在插件列表中选中 Ebook Translator 然后点击 【 安装 】 按钮(请留意,首次安装此插件时,要选择把图标显示在主工具栏上);
- 最后关闭并重新打开 Calibre 即可正常使用。
【方法二】通过插件文件安装
- Ebook Translator 插件下载:插件主页 | GitHub下载 | 百度网盘 | Google Drive
NAME: Ebook-Translator-Calibre-Plugin_v2.2.0.zip
MD5: 4eda05385bf2f49d1b8a066b9795e3ab
SHA1: e9bcfc0d02c51dc7dd7d9de9a1f4b0c12e3f6ba0
- 首先在通过以上链接下载插件文件;
- 然后打开 Calibre 并依次点击其菜单【首选项 → 插件 → 从文件加载插件】;
- 在弹出的对话框中选择下载的扩展名为 .zip 的插件文件完成安装(请留意,首次安装此插件时,要选择把图标显示在主工具栏上);
- 最后关闭并重新打开 Calibre 即可正常使用。
如果想安装最新版本,可以访问 https://translator.bookfere.com 点击按钮【Rolling Release】下载。注意,最新版本在每次提交代码时自动生成,未经过严格测试,可能会存在错误。
如果安装插件后,插件图标未出现在 Calibre 的主工具栏上,可以依次点击 Calibre 的菜单【首选项 → 工具与菜单】,在弹出的对话框中点击下拉菜单并选择“主工具栏”,然后在左栏找到并选中插件图标,点击中间的右箭头按钮【>】将其添加到右栏,最后点击【应用】按钮即可。
三、使用方法
Ebook Translator 提供了两种翻译模式,在开启缓存状态下两者共享同一缓存数据。
1、高级模式
- 在 Calibre 书库中选中要推送的电子书,点击 Calibre 主工具栏上的【翻译书籍】图标按钮,或点击图标下拉菜单选择【高级模式】;
- 在弹出的提示框点击选择“高级模式”(首次打开);
- 选择“输入格式”和“输出格式”,点击【开始】进入“高级模式”翻译主界面;
- 点击【删除】按钮删除需要忽略翻译的选中段落(可选);
- 通过以下两种方式进行翻译:
- 点击【翻译所选】按钮翻译选中的段落
- 点击【翻译全部】按钮翻译全部电子书内容
- 翻译完成后,在右方“校对”区域,通过编辑下方文本并点击【保存】,可以更改翻译结果;
- 点击【输出】按钮,存储翻译完成后的电子书。输出任务将被推送添加到 Calibre 的任务队列。
2、批量模式
- 在 Calibre 书库中选中要推送的电子书,点击 Calibre 主工具栏上的【翻译书籍】图标按钮,或点击图标下拉菜单选择【批量模式】;
- 在弹出的提示框点击选择“批量模式”(首次打开);
- 进入插件主界面,在这里你可以修改“书名”(作为保存文件时使用的文件名),分别为每一本书选择“输入格式”、“输出格式”、“来源语言”(一般情况下“自动探测”即可满足需求)、“目标语言”(默认使用 Calibre 界面当前所用的语言);
- 点击下方的【翻译】按钮即可开始翻译。
插件会将每本电子书的翻译任务推送添加到 Calibre 的任务队列,你可以通过点击 Calibre 右下角的【任务】查看推送详情,双击任务条目可以进入日志实时查看正在翻译的内容。
三、插件设置
▲ Ebook Translator 通用设置
▲ Ebook Translator 引擎设置
▲ Ebook Translator 内容设置
有关设置内容的详细说明请查阅 Ebook Translator 项目的 Wiki 页面。
五、注意事项
开发 Ebook Translator 插件测试用的 Calibre 版本是 3.48 和最新版版本,因此理论上插件在 3.x 到 6.x 版本的 Calibre 中都能正常使用,但是如果版本低于 3.x,可能无法正常使用。
尽管 Ebook Translator 插件在发布会尽可能测试,但仍无法保证在任何情况下不会出现问题。
如果你在使用插件的过程中遇到了问题或有好的建议,欢迎报告错误或提交功能请求。
六、常见问题
1、翻译文件丢失
有些用户反馈翻译完成后无法打开文件,此问题通常发生在 Windows 系统上。在 Windows 系统中,有一个功能叫做 “存储感知”,它会自动清理长时间运行程序的临时文件。
为避免此问题,请通过插件的缓存管理器为缓存另外指定文件夹(请勿选择任何临时目录)。
2、翻译速度太慢
普通翻译服务(如 Google Translate)翻译 1000 个段落通常仅需不到 1 分钟的时间。如果你使用的是 ChatGPT 之类的生成式 AI,耗时则有较大的差异,建议根据服务的速率限制在设置中修改并发请求和请求间隔以加快翻译速度。另外,也可开启合并段落功能大幅提升翻译速度。
3、合并翻译效果
在使用 ChatGPT 时合并翻译功能表现较差,这是因为插件会在合并后的文本中添加标记,由于无法保证 ChatGPT 翻译这些文本后仍会保留这些标记,因此无法保证最终的翻译效果。因此,如果要使用的 ChatGPT 翻译电子书,不建议开启合并翻译功能。
七、更新日志:
2024.06.14 / v2.3.5
- 添加“开启/关闭”翻译元数据的选项;
- 更新土耳其语界面翻译;归功于 @DogancanYr
- 修复因缺少命名空间导致的输出错误;
- 修复无法重试翻译失败条目的错误;
- 修复无法正确显示自定义引擎配置的错误;
2024.05.05 / v2.3.4
- 为高级模式添加过滤功能;
- 支持通过 CSS 选择器保留元素;
- 支持设置需要优先提取的元;
- 添加翻译状态显示器;归功于 @Andy-AO
- 添加未对齐条目数量;归功于 @Andy-AO
- 将翻译失败的条目标记为红色;
- 缓存管理器显示缓存最后修改时间;
- 支持关闭以及自动隐藏通知;
- 添加快捷键和快速访问键;
- 允许用户选择译文书写方向;
- 分离显示翻译进度和转换进度;
- 修复无法设置原文颜色的错误;
- 修复为换行添加译文的错误;
- 修复删除条目出现错误的错误;
- 保存编辑后正确显示条目状态。
2024.03.27 / v2.3.3
- 新增 Claude 翻译引擎;
- 优化添加翻译功能;
- 界面语言添加土耳其语;归功于 @DogancanYr
- 显示电子书内容抽取细节;
- 支持为纯文本选择编码;
- 修复 Windows 下的输出错误;
- 修复 Windows 删除缓存错误。
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/1057.html
延伸阅读
- [每周一书]《别逗了,费曼先生》科学顽童的故事
- [每周一书]《失明症漫记》当苦难被视而不见
- 困惑与危机:节节败退的中产阶级
- [每周一书] 深入剖析《人类活动中的理性》
- 苹果公司人物传记:史蒂夫·乔布斯及他的小伙伴们
- 美亚推出全新管理 Kindle 笔记和标注的网站服务
- [每周一书]《杂食者的两难》现代人的饮食困境
- [每周一书]《走出帝制》从晚清到民国的历史回望
- [2019.02.15] Kindle 阅读器固件升级至 5.10.3
- Clippings Fere:导出 Kindle 标注和笔记使其更易于阅读
- [每周一书]《独裁者手册》带你真正理解政治
- [2021.03.08] Kindle 阅读器固件升级至 5.13.5
- 亚马逊 Kindle 中国电子书店将于 2023 年 6 月 30 日停止运营
- 亚马逊 Kindle Scribe(2022)开箱测评视频总汇
- Kindle Paperwhite 4(5.10.0.1 ~ 5.10.1.3)越狱教程
感谢你的引路
希望以后可以添加一个仅导出译文的选项,现在导出的是双语版本。
可以在插件设置的内容选项卡中选择仅保留译文。
导出文档时遇到了报错,如何解决:
Traceback (most recent call last):
File “runpy.py”, line 198, in _run_module_as_main
File “runpy.py”, line 88, in _run_code
File “site.py”, line 83, in
File “site.py”, line 78, in main
File “site.py”, line 50, in run_entry_point
File “calibre\utils\ipc\worker.py”, line 215, in main
File “calibre\utils\ipc\worker.py”, line 150, in arbitrary_n
File “calibre_plugins.ebook_translator.lib.conversion”, line 242, in convert_item
File “calibre_plugins.ebook_translator.lib.conversion”, line 86, in convert_book
File “calibre\ebooks\conversion\plumber.py”, line 1294, in run
File “calibre_plugins.ebook_translator.lib.conversion”, line 74, in convert
File “calibre_plugins.ebook_translator.lib.element”, line 682, in add_translations
File “calibre_plugins.ebook_translator.lib.element”, line 285, in add_translation
File “calibre_plugins.ebook_translator.lib.element”, line 247, in _create_new_element
File “src/lxml/etree.pyx”, line 3266, in lxml.etree.XML
File “src/lxml/parser.pxi”, line 1989, in lxml.etree._parseMemoryDocument
File “src/lxml/parser.pxi”, line 1869, in lxml.etree._parseDoc
File “src/lxml/parser.pxi”, line 1105, in lxml.etree._BaseParser._parseUnicodeDoc
File “src/lxml/parser.pxi”, line 633, in lxml.etree._ParserContext._handleParseResultDoc
File “src/lxml/parser.pxi”, line 743, in lxml.etree._handleParseResult
File “src/lxml/parser.pxi”, line 672, in lxml.etree._raiseParseError
File “”, line 1
lxml.etree.XMLSyntaxError: Namespace prefix epub for type on span is not defined, line 1, column 646
问题已修复,请下载 Rolling Release 版本测试。
感谢分享 请教 不知道为什么 首选项-工具栏与菜单栏里 把翻译插件放上去应用后 几秒后按钮就没了 恢复初始了 然后重启软件 又是这样 几秒后消失恢复初始 我又试了其他几个移到工具栏里或移出工具栏 都是几秒后消失恢复初始工具栏
PC重启后工具栏正常了 原来重启软件不行 还得重启PC^^
这里有一个问题就是,epub电子书下,原文中的引用符号比如 “叶卡捷琳娜大帝曾经表态过如何处理俄罗斯农奴[3]的方案” 中翻译后本来是引用的符号 [3] 会丢失其HTML标签属性,变成纯字符串的 [3] ,感觉这个问题是可以修复的,在翻译的时候专门针对引用的标签保留原样式就好了
pdf文档卡在了提取电子书内容的进度条,没有任何进展,怎么办
calibre 3.9 报operationalError: near “on”:syntax error 无法实现翻译。
选择高级模式,详细信息里的提示是:
File “calibre_plugins.ebook_translator.advanced”, line 80, in prepare_ebook_data
File “calibre_plugins.ebook_translator.lib.cache”, line 151, in set_info
OperationalError: near “ON”: syntax error
选择批量模式,详细错误信息里的提示是:
File “calibre_plugins.ebook_translator.lib.conversion”, line 60, in convert_book
File “calibre_plugins.ebook_translator.lib.cache”, line 151, in set_info
sqlite3.OperationalError: near “ON”: syntax error
您好!感谢您的开发。是否可以设置原文和译文左右对照呢?
这样格式可以较好保证,在有图和表格的时候。
那必须除非是出版书,才能保证这样的排版。不同语言,长度不一样。这样一段1译文已经是电子书能做到差不多最好的结果了。
选择DeepL(free) 部分段落报错怎么办呢
错误信息:无法从翻译引擎API获取数据。
无法解析返回的响应。原始数据:
Traceback (most recent call last):
File “calibre_plugins.ebook_translator.engines.base”, line 185, in get_result
File “mechanize\_mechanize.py”, line 257, in open
File “mechanize\_mechanize.py”, line 313, in _mech_open
mechanize._response.get_seek_wrapper_class..httperror_seek_wrapper: HTTP Error 429:
请问选择有道翻译显示
无法从翻译引擎API获取数据。
必须填写正确的密钥格式 “appid|appsecret”。
要怎么办呢
你需要把从有道那里得到的 appid 和 appsecret 用“|”拼接起来,类似 text_id|xxxxxxxxxx。
请问在哪里能够找到appsecret?
翻译报错,显示无法从翻译引擎API获取数据
无法解析返回的响应。原始数据:
Traceback (most recent call last):
File “calibre_plugins.ebook_translator.engines.base”, line 185, in get_result
File “mechanize\_mechanize.py”, line 257, in open
File “mechanize\_mechanize.py”, line 287, in _mech_open
File “mechanize\_opener.py”, line 193, in open
File “mechanize\_urllib2_fork.py”, line 425, in _open
File “mechanize\_urllib2_fork.py”, line 414, in _call_chain
File “mechanize\_urllib2_fork.py”, line 1283, in https_open
File “mechanize\_urllib2_fork.py”, line 1240, in do_open
urllib.error.URLError:
请问,ChatGPT(OpenAI)能加入自定义模型的功能吗?
提交一個bug:在openSUSE Tumbleweed 20230115下使用Calibre 6.22,Translator版本 2.2.0版本 ,翻譯的緩存,點擊後打不開,但可以選擇一些緩存刪除。
https://github.com/bookfere/Ebook-Translator-Calibre-Plugin/discussions/94 我有參閱這個關於自定義詞彙表,想請教一下,我這樣理解對嗎? 1.詞彙表的文檔格式是.txt 2.文檔中自定義詞彙表的排版這樣的嗎?(翻譯詞前后都加一个空格)
舉個例子:
abhidhamma
阿毗達摩
Jātaka
本生
cūḷavagga
小品
我想請問的有兩個:自定義詞彙表文檔裏的排版是否得像舉的例子一樣排版(被翻譯詞前后都加一个空格)?被翻譯的詞若首字母有大小寫和詞中有特殊拉丁字母,是否翻譯時只能對應匹配的特定首字母有大小寫和詞中有特殊拉丁字母的詞進行翻譯,其他的都不影響?
您好,我使用插件翻譯到一半,因電腦死機重啓了,而回到插件後,想通過Temp\\com.bookfere.Calibre.EbookTranslator\ 下的.db緩存恢復,請問我應該怎樣操作才能恢復翻譯一半的文檔呢?
你好,我翻译PDF的时候显示没有可翻译的内容。