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 全系列更新,含首款彩屏 Kindle Colorsoft
- [2018.10.18] Kindle 阅读器固件升级至 5.10.1.1
- 辨别 Kindle 世代:如何区分不同型号 Kindle 设备属于第几代
- 越狱须知:Kindle 5.6.5 越狱将于 10 月 31 号放出
- [每周一书]《WHAT IF》那些古怪又让人忧心的问题
- [重要通知] 亚马逊强制升级老 Kindle 设备固件
- Kindle 注册不同区域亚马逊账号的相关答疑
- Kindle Voyage 阅读器深度评测(四):软件功能
- [2016.10.28] Kindle 阅读器固件升级至 5.8.5.0.1
- 第二代 Kindle Paperwhite 固件升级到 5.4.5
- [每周一书]《美国大城市的死与生》讲述理想中的城市
- Kindle 应用将于 2024 年 11 月 15 日移除“生词卡”功能
- [每周一书]《大路》高速中国里的工地纪事
- 图灵访谈:松本行弘与他的《代码的未来》
- Sherry推荐图书(十四)—— 科幻与想象力
- 如何解决 Kindle 电子书无法更换字体的问题
你好,为什么翻译速度很慢,有没有办法解决呢??
对请求频率限制较低的翻译引擎(如 Google 翻译),可以在设置中加大并发请求数量(如 100)以加快翻译速度。对请求频率限制较高的翻译引擎(如免费版的 ChatGPT),则不要使用并发请求,还要设定一个合适的请求时间间隔,以防 API 拒绝服务。
calibre, version 6.14.0
错误: 转换失败: 转换失败:
许多较老的电子书阅读器无法显示内部单个文件超过一定大小的EPUB文件。
因此,当转换为EPUB时,calibre 会自动尝试将EPUB内部文件拆分成多个较小的文件。对于一些大的无法拆分文本块的文件,此拆分无效。
你可以通过在转换对话框中增加EPUB输出下的最大拆分大小或通过在转换对话框中打开智能处理来解决这个问题。请注意,如果你的最大拆分大小过大,你的电子书阅读器可能会遇到EPUB的问题。
译完之后转换失败,该怎么办呢?
用的是什么翻译引擎,是否使用了合并翻译功能?
谷歌,用了合并翻译
用DeepL(Free)英译中,翻译词汇表皆没替换。该怎么做呢?勾选并保存了。
请问出现这种问题是为什么,刚开始就报错。
Python function terminated unexpectedly
unable to open database file (Error Code: 1)
Traceback (most recent call last):
File “site.py”, line 114, in main
File “site.py”, line 88, in run_entry_point
File “site-packages\calibre\utils\ipc\worker.py”, line 209, in main
File “site-packages\calibre\utils\ipc\worker.py”, line 146, in arbitrary_n
File “calibre_plugins.ebook_translator.convertion”, line 90, in convert_book
File “calibre_plugins.ebook_translator.cache”, line 15, in __init__
sqlite3.OperationalError: unable to open database file
请问,如何设置只翻译文字内容和正常的符号。
其他内容(如奇怪的特殊符号这些),全部都不翻译出来,自动忽略删掉。
您好,我出现了这种情况,翻译结果如下:
太多的 {{}} 符号,影响观看体验了,需要怎么调整呢?
{{id_234}} 参考文献 {{id_235}} Alessi, S., & Dwyer, A. (2008)。阅读前和阅读期间的词汇帮助。阅读外语,20(2),246-263。 {{id_236}} Bell, T. (2001)。泛读:速度和理解。阅读矩阵,1(1), 1– 13。{{id_237}} 在速读课程中提高阅读速度 19 {{id_238}} Bismoko, J., & Nation, I. S. P. (1972)。阅读速度和迁移训练。 Publikasi Ilmu Keguruan Sastra Seni,2(2),3-5。 {{id_239}} Bowey, J. (2005)。预测学习阅读的个体差异。在 M. Snowling & C. Hulme(编辑),阅读科学(第 155-172 页)中。马萨诸塞州马尔登:布莱克威尔。 {{id_240}} Carver, R. P. (1992)。阅读率:理论、研究和实际意义。阅读杂志,36(2),{{id_241}}84-95。 {{id_242}} 张,A. C. S. (2010)。定时阅读活动对 EFL 学习者的影响:速度、理解和感知。阅读外语,22(2),284-303。 {{id_243}} Chung, M., & Nation, P. (2006)。速读课程的效果。英语教学,64(4), 181–204。 Cramer, S. (1975)。提高英文或本国语言的阅读速度? RELC 期刊,6, 19–25。 {{id_244}} Daneman, M. & Carpenter, P. A. (1980)。工作记忆和阅读的个体差异。语言学习和语言行为杂志,19,450-466。 {{id_245}} Das, J. P., & Mishra, R. K. (1991)。记忆跨度、命名时间、语速和阅读能力之间的关系。实验教育杂志,59(2),129–139。{{id_246}} Fortkamp, M. B. M. (1999)。工作记忆容量和 L2 语音生成的各个方面。沟通与认知, 32, 259–296。 {{id_247}} Fry, E. (1967)。阅读更快。剑桥:剑桥大学出版社。 {{id_248}} Fuchs, L., Fuchs, D., Hosp, M., & Jenkins, J. (2001)。口语阅读流利度作为阅读能力的指标:理论、实证和历史分析。阅读和写作的科学研究,5,{{id_249}} 239–256。
0}} Harrington, M., & Sawyer, M. (1992)。 L2 工作记忆能力和 L2 阅读能力。第二{{id_251}}语言习得研究,14, 25–38。 {{id_252}} Harris, D. (1970)。实验组执行记忆跨度测试的报告。 TESOL 季刊,4(3),{{id_253}} 203–213。 {{id_254}} 亨
这是合并段落时插入的标记,会出现在日志中,但是应该不会出现在最终的电子书中的。你指的是日志中的观感吗?
日志中的观感倒没关系,主要是有时候会导入kindle,有时候直接在calibr软件上观看,有时候会在wps打开观看。
上述情况不知道是在calibr软件还是wps软件显示的结果。
但不是指日志而已。
你指的是最终生成的电子书含有这些标记吗?
你好,请问合并翻译与正常翻译在翻译质量上有区别吗,合并翻译是否会根据上下文进行理解性的翻译
合并翻译含有更多的上下文,理论上质量会更好一些,但是还是建议自己对比一下。
经过测试:DeepL免费和Dpeel API FREE的翻译效果和速度相差无几,API PRO没有办法测试.
将书籍转换为docx后,Dpeel pro上传文档翻译的效果比ebook translator的效果还差一些,出现吞字母的情况,,也可能和我的书籍有关系.
你好,请问在书籍完成后发生以下错误OSError: [Errno 28] No space left on device是怎么回事
如果磁盘空间充足,有可能是临时文件夹中的临时文件数量过多的原因。可以尝试按 WIN + R 键打开“运行”输入 %temp% 后回车,删除一些临时文件再试试看。
你好,我在用deeplfree翻译时总会报错,谷歌就不会
DeepL (Free) 不稳定,除非你能忍受较大请求间隔,否则建议使用 Google (Free)。
我是路由器代理的,比谷歌慢一点,但是也就隔一两个小时才报错
你好,可以解释一下什么是路由器代理吗,我查了一下没看懂
就是路由器就挂了梯子挂,稳定,不掉
你好,我在使用翻译词汇表的时候,无论用哪种格式,我的翻译都不会纠正。
White
白方
Black
黑方
我都是每一组下面空一行,但是翻译出来还是没有改变,white翻译成怀特。是我的操作用问题,还是?
使用的是哪种翻译引擎?
由于使用chatGPT速度太慢了所以用了,谷歌和DeepL的非API方式.
输入格式是EPUB,输出任意格式同样如此.
来源语言选择自动检测和英语也一样
没有勾选合并翻译,且没有开启忽略段落.
翻译词汇表在F盘根目录,F:/翻译.txt
其余设置均为默认
| Calibre Version: 6.17.0
| Plugin Version: v1.3.8
| Translate Engine: DeepL(Free)
| Source Language: 自动探测
| Target Language: Chinese (simplified)
| Input Path: E:\书库\Unknown\The Unstoppable American – Jan Timm (1478)\The Unstoppable American – Jan – Unknown.epub
| Output Path: F:/suc\The Unstoppable American – Jan Timman (Chinese (simplified)).docx
==============================
翻译词汇表前面的“开启”复选框勾选了吗?
开启了,并且保存了
向您请教:
1、google(Free)与Chat Gpt 3.5,翻译准确度谁会更高呢?
2、我设置的合并翻译字符数量不超过多少,在google(Free)翻译出的结果比较稳定呢?
3、忽略段落的功能能否展开讲讲,以程序小白的口头语言解释一下,还是不了解功能的内容。
1、精准度不好评价,我的感觉这更多是个偏好问题。如果不是做翻译工作而只是用来辅助理解原文,它们之间的差异应该是可以忽略的。你可以自己对比一下翻译结果再做选择。不过可以肯定的是,Google (Free) 更快一些 :D
2、目前对 Google (Free) 的请求使用的是 GET 方法,这个 API 对请求的长度有限制,最好不要超过通常网页浏览器对 GET 方法的字符数限制(即 2083),加上合并段落会向内容插入标记这也会占用一些字符数,使用默认 2000 个字符是比较理想的。这个 API 也支持 POST 方法,曾经为了增加请求字符数尝试过,但是因为会出现“Too Many Request”的问题就又改回来了。如果你使用的是付费翻译引擎,则都会使用 POST 方法,字符数限制问题几乎可以忽略。
3、忽略段落指的是按照设定的规则忽略插件已抽出的内容。此功能的工作方式在项目 Issue #41 中有所提及。这里再补充一个例子解释一下。比如插件在翻译电子书时抽出了以下元素:
如果你选择的是文本范围,那么设定的规则就会针对元素中的文本内容进行匹配。比如我设定的一条规则是
span
,那么含有下面这个内容的段落就会被忽略:如果你选择是 HTML 元素范围,那么设定的规则就会对整个 HTML 元素进行匹配。比如我设定的一条规则是
class="test2"
或<span>span</span>
,那么下面这个段落就会被忽略:不过正如在项目 Issue #41 所解释的那样,目前这个功能有个缺点,就是插件抽出的元素用户无法控制。后面的版本会推出忽略元素功能,可以在插件抽取元素过程中控制忽略哪些元素不需要翻译。比如我想忽略整个
table
元素,只需要通过指定一个元素名table
就可以忽略整个表格,而不是写多条规则忽略插件已抽出的td
或td
元素中的span
元素。另外,插件正在开发一个可以更精细的控制翻译内容的“高级翻译”功能,会在界面上将这些不太直观的功能可视化。
太感谢您的耐心与细致的解答了,谢谢。
有百度翻译的api,但没有网络代理,设置为百度后依旧使用Google(Free),如何解决🥺
选择百度翻译之后点击【保存】按钮了吗?
原来在下面有保存,打扰了😂
哇,这个新版本厉害了,速度真的显著提升~棒!
后期版本有可能增加回译功能吗?(通过中文再翻译回英文,以确定其准确性,不知如何表达。。)
现在的速度已经很好了,翻译的准确率是否会更加优化。
不知道是不是这一种。→https://blog.csdn.net/dongrixinyu/article/details/108660386
可以理解为加一个选项,控制(英译中,中译英,英译中)这个过程的次数吗?
回译我没太弄懂。
但是不知道能否使用这个策略,以增加翻译准确度:
调用多个主流的翻译引擎,同时翻译,然后系统自动选取“相同率”最高的那条作为翻译结果。
举例说明:A代表相同部分,B代表不同部分
英文翻译
谷歌:AAAAAAAAAA
百度:AAAAAAAAAA
微软:AAAAAAAAAA
有道:AAAAAAAABA
上面这种情况,那么就把微软给删除
谷歌:AAAAABAAAA
百度:ABABABABAB
微软:AABABAABAA
有道:AAAABAABAA
这种情况,就只留下谷歌翻译
意思就是:
设定优先级,保留相同率最高的那条翻译,如出现优先级无法辨别,则引用主流的翻译引擎
大概是这个意思,不知道现不现实。
这个网页版翻译引擎:
https://languagex.com
里面就有可以调用多个翻译引擎的,输入一句中文,可以调动谷歌、百度、微软、deepl给出翻译,然后选出叠重率最高的那条作为最终翻译结果,想法大致就是这样子。
看起来很复杂的样子。今后有机会再研究,或者看是否有人贡献代码。
你好,看了你的第一个例子,只有有道出现一个B,为啥不是把有道删除
您好,请问翻译出来带有一些特殊符号,是哪里出了问题了吗?
英文的PDF格式翻译成中文的mobi形式
出现例如像:
翻译出来的文件有一些特殊符号:
{{ }}、☑☑☑☑(里面没有打勾),
像出现这些奇怪的符号,是哪里出了问题了吗,需要如何解决
这是在 OCR 后出现的特殊字符吗?
请教一下您:
如果我的书籍是PDF,但是PDF是图片类而非文字类
我有什么办法把PDF先变成文字类呢?
需要使用 ABBYY 之类的 OCR 工具转换。