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
延伸阅读
- Calibre 使用教程之批量获取电子书元数据
- 一个翻译时代的逝去:被轻视的文学阅读
- 亚马逊青春版 Kindle(2019)评测视频总汇
- [每周一书] 从《九型人格》中认识自己和理解他人
- [每周一书] 《无缘社会》一个人走向人生终点
- 第一代 Kindle Paperwhite 固件升级至 5.6.1.1
- 亚马逊 Kindle 阅读器系列产品充电相关问答
- 2014最适合阅读电子书阅读器年终排行 KPW 居首
- 把 TXT 文档转换成带目录的 MOBI 格式电子书
- 利用 ChatGPT 分析理解阅读英文原著时遇到的长难句
- [每周一书] 《故事》不仅仅可用于创作剧本
- 如何快速无损修复推送失败的 EPUB 格式电子书文件
- [每周一书]《美妙的新世界》机械文明下的未来社会
- Kindle 挑战者又来了,这次它学聪明了吗?
- [每周一书]《当下的力量》寻找内心真实的自我
哈喽,想请问:是否有回译功能添加其准确性的脚本在内?
另外提升其翻译速度的方式(因为我不懂代码,所以口语化表述):
有没有这个可能,添加一个功能,翻译前将一本书拆解成几部分,然后再进行翻译,翻译成功后,再进行合并。如果有这个功能,那可以极大增加翻译的速度。
后面的版本会增加一个翻译监控面板,可以更精细的控制翻译,包括你所说的让其重新翻译段落,甚至针对同一段落调用不同翻译引擎翻译以获取最佳翻译效果。
关于速度的问题,主要是受限于翻译引擎 API 的请求限制。插件后面的版本会增加并发请求的功能,对于免费版本的翻译引擎可能效果有限,但是如果你使用的是付费版本,允许大量并发请求,则会大大提升翻译速度。
你好,我在正常可以访问chatGPT,API我也申请了,但是用这个插件的时候,测试却总是返回“Can not parse returned response. Raw data: HTTP Error 429: Too Many Requests”,请问一下这个怎么解决?
使用了网络代理吗?如果用了的话需要更换 IP。因为可用请求 ChatGPT API 的 IP 可能已经被别人大量请求,导致出现 “Too Many Requests” 的错误。
用了代理,换了多次IP都不成功,这个以后再说吧。
现在是碰到了一个其他问题。
当我使用google(free)的时候,翻译都100%了,但是报错FileNotFoundError: [Errno 2] No such file or directory: ‘C:\\Users\\****\\AppData\\Local\\Temp\\calibre_acs3lnag\\hvea0boj_plumber\\OEBPS/Images/2.55_emergence-neurons.png’
不论我选择书库,还是直接的pc位置比如c:\documents 都会报同样的错误。calibre的版本是6.17.0,插件版本1.3.6。
此问题建议参考这个帖子。在 Windows 系统中,有一个功能叫做 “存储感知”,它会自动清理长时间运行程序的临时文件。你可以尝试关掉此功能,或通过 Calibre 的环境变量
CALIBRE_TEMP_DIR
为其重新指定一个文件夹。谷歌翻译不是退出大陆了嘛?那翻译都需要收费了是吧?
插件中的 Google (Free) 是免费的,但是使用需要网络代理。
哇,您回复很快捏~我都没有留意,谢谢您了。
再请教一番:
chatgpt3.5与Google(Free)哪个精准度会更高?
因为chatgpt3.5一本书下来费用也不算太高。
另外您描述的deepl(free)翻译不稳定,不稳定具体再哪里呢?是翻译不准确,还是其他的不稳定?
精准度不好评价,感觉这更多是个偏好问题。DeepL (Free) 不稳定是指这个 API 可能会出现拒绝服务的情况。
明白了,谢谢您~
谷歌(免费)需要美国的ip是吧?
没有这个限制,支持访问 Google 的 IP 均可。
就是除了大陆ip基本都行是吧?
另外,大陆是不是就不允许访问谷歌的
是的。在中国 Google 只有部分商业相关业务不受影响。
你好
clibre3.48 升级1.35版本失败
弹框提示
错误: 未处理的异常: ImportError:cannot import name _z
请问如何解决,谢谢!
calibre 3.48 Portable embedded-python: True is64bit: False
Windows-7-6.1.7601-SP1 Windows (’32bit’, ‘WindowsPE’)
32bit process running on 64bit windows
(‘Windows’, ‘7’, ‘6.1.7601’)
Python 2.7.15+
Windows: (‘7’, ‘6.1.7601’, ‘SP1′, u’Multiprocessor Free’)
Interface language: zh_CN
Successfully initialized third party plugins: KindleUnpack – The Plugin (0, 83, 1) && Ebook Translator (1, 1, 0) && EpubMerge (2, 15, 0) && EpubSplit (3, 5, 0)
Traceback (most recent call last):
File “site-packages\calibre\gui2\preferences\plugins.py”, line 319, in add_plugin
File “site-packages\calibre\customize\ui.py”, line 472, in add_plugin
File “site-packages\calibre\customize\ui.py”, line 61, in load_plugin
File “site-packages\calibre\customize\zipplugin.py”, line 201, in load
File “site-packages\polyglot\builtins.py”, line 186, in reload
File “site-packages\calibre\customize\zipplugin.py”, line 185, in load_module
File “calibre_plugins.ebook_translator.__init__”, line 3, in
ImportError: cannot import name _z
升级后是否重启了 Calibre?
目前版本1.1.0
无法升级高版本。重启也无效
这个问题会在之后的版本处理,你可以暂时这样解决:进入插件设置,删除旧插件,关闭并重新打开 Calibre,安装新插件。
解决了。
手动升级不了。在插件检测更新可以升级,重启后生效。
ul,li,这样的列表元素里面的内容,没有能翻译,这个正常吗?
不正常。之前插件同时存在新旧两种抽取元素的方式,会根据电子书结构选择使用。旧的方式会出现忽略某些元素不翻译的情况,新的则不会,现在插件已经决定抛弃旧的方式,你可以按照文中提供的命令从 GitHub 仓库中获取最新的插件文件安装试用。
按照你提供的方法,把插件升级到1.3.5,不过问题还是存在
可以把电子书发送到书伴邮箱 以便测试(请附上出问题的章节)。
连续试了几个版本的插件,目前是1.3.5,发现同等硬件配置下,该插件在Linux客户端下的运行效率明显低于Windows。按Debian 11 + Calibre 6.17 + Ebook Translator 1.3.5的组合,通过Google(Free)的翻译时间是Windows 11 + Calibre 6.17 + Ebook Translator 1.3.5所需翻译时间的几十倍。
不知道是代码适配问题,还是其他什么原因。
翻译的条目和设置的请求间隔是一样的吗?后面的版本会添加并发请求功能提高一下效率。
插件设置是相同的,不过刚试了其他翻译引擎都正常,google的在我这两个系统下的表现差异太大。google的ping值都很正常,或许也和我这网络环境有关,看来个例的可能性比较大。
意大利文,会出现如下情况,一部分下级内容不翻译,直接掠过。请问怎么办?
(作为 1997 年开始的标准政策的一部分,所有项目都包含在所有研究中),汇总每个业务部门的数据,并且该分数与以下相关按业务部门汇总绩效指标:
métrica de cliente (denominada compromiso del cliente)
rentabilidad
productividad
这可能是插件没有提取到内容,方便的话可以把这本书发送到书伴邮箱 以便测试。
使用合并翻译时排版会乱,有时候会有好几个句子的翻译挤成一坨,而不是一句原文一句翻译。版本 v1.3.3 翻译引擎chatgpt
谢谢反馈。这个错误已在 v1.3.4 中修复,请更新试用。
试了一下,v1.3.4中还是会出现问题。之前忘了问,使用chatgpt合并翻译的最大字符就是2000吗?我昨天(也就是v1.3.3)中把字符调到3000后,就有一些句子没有被翻译。
另外,我有一本书无法正确检测到,我发到了,您能帮我看看吗?
ChatGPT 具体有多少字数限制不太清楚,但是不建议太长,你可以自行测试找到一个合适数目。
邮件发来的两本书,其中一个貌似结构有些问题,Calibre 无法将其分段,因此将整本书内容发送给了翻译引擎导致出错,建议先把原书转换成 TXT 再进行翻译。对于 ChatGPT 合并段落的问题,我们对插件又做了一些优化,你可以下载最新版本试用。
另外,插件的合并翻译功能在 ChatGPT 上的表现仍不太好,这是因为没找到太好的办法让 ChatGPT 原样保留合并段落时插入的标记,如果翻译某些书时问题比较严重,还是逐段翻译比较保险。
请教一下这是怎么回事?
AttributeError: ‘NoneType’ object has no attribute ‘tail’
使用的是最新版本 v1.3.2 吗?
您好,请问网络代理填写之后,谷歌翻译测试的时候,显示返回的数据有问题,仍然无法翻译,这是怎么回事呢?
显示具体错误信息了吗?有的话可以贴上来看看。
就是在设置页面的翻译选择页面的测试按钮,测试谷歌翻译显示无法解析返回的数据,是不是说明我填写的代理Ip无法连接谷歌翻译导致的?
情况就是谷歌翻译无法给出翻译结果,是不是因为代理IP的问题,如果是IP的问题,那我要如何获得代理IP呢?
如果无法正常翻译应该会显示像下面这样的错误信息,其中原始数据后面的信息可以帮助判断问题出在哪儿。
你在测试时,翻译失败后插件没有显示原始数据吗?
您好,显示的是这个:无法解析返回的响应。原始数据:
您好,评论无法上传图片,也提示我请使用汉字交流,有什么方法可以评论出原始数据
我还以为是返回的空信息。如果错误信息里有尖括号,可以将其删除再贴上来,评论需要有至少一个汉字。
好的,这个是错误信息urlopen error [Errno 61] Connection refused
这表示 Google 翻译拒绝服务,看起来是网络代理的问题,如果你使用的代理提供了多条线路,可以更换一个 IP 再试试看。
不好意思管理员,我不太懂这个东西,我不知道要怎么获得可以用的代理ip,是需要我先通过一些付费软件挂到vpn吗?
现在的网络代理类型有很多种,有免费的也有付费的,一两句话不太能说清楚,你需要自行研究一下。通常代理软件会提供多种线路(即所谓的可用代理 IP),供用户在设置中进行切换。如果你使用的是真正的 VPN,一般不需要在插件中设置代理,因为它是全局的(所有网络流量都会通过它);如果你使用的是其他网络代理协议,并且开启了全局模式,一般也不需要在插件中设置代理,否则,需要在软件设置中找到可用于 HTTP 代理的 IP 和端口,将其填写到插件代理设置中保存即可。
好的管理员,非常感谢您的解答,我去试一下,如果还有问题我会继续留言询问,辛苦了
您好,请问什么是api啊?我是中国用户,目前没有填写api(因为不知道怎么弄T_T),所以就是无法翻译的状态,请问api到哪里可以买呢?付费的是需要fan强去官网买吗?免费的要怎么获得呢?实在不好意思,我了解得太少了,谢谢!
你可以通过以下链接获取插件内置翻译引擎所需要 API 密钥。需要注意的是,中国用户无法正常访问 ChatGPT 服务,因此需要合适的网络代理软件才能访问,除了付费服务,它也有一定的免费额度可体验。DeepL 也有一定的免费额度可体验,但是无法使用中国境内发行的信用卡支付。百度翻译和有道翻译有只有很少的免费额度可使用,而且需要实名认证,不推荐使用。
OpenAI 的api的话,支持代理接口使用吗?代理的话,网址需要带v1/chat/completions 类似这样的后缀吗?
我看chrome的划词翻译插件和沉浸式翻译,好像都需要带这样的后缀。
如果不使用官方的 API 网址,可以利用插件的自定义翻译引擎功能指定其它网址。
如何获得api密钥呢,在deepl里没找到api获得的路径,如果尝试使用有道翻译,申请api需要应用名称,不知道该如何使用
DeepL 的付费服务有区域限制,详情可查看其官方价格页面。申请有道翻译 API 密钥时所要求的应用名称可以随意填写,关键是要获取它的应用 ID 和密钥。另外,你也可以使用插件内置的免费的 Google 或 DeepL 翻译。
小白求问,插件为啥无法安装成功呢?显示:
錯誤: 未處理的例外: InvalidPlugin:The plugin in ‘/Users/ylchen/Downloads/Ebook-Translator-Calibre-Plugin_v1-2.zip’ is invalid. It does not contain a top-level __init__.py file
calibre 6.14.1 embedded-python: True
macOS-13.2.1-x86_64-i386-64bit Darwin (’64bit’, ”)
(‘Darwin’, ‘22.3.0’, ‘Darwin Kernel Version 22.3.0: Mon Jan 30 20:42:11 PST 2023; root:xnu-8792.81.3~2/RELEASE_X86_64’)
Python 3.10.1
OSX: (‘13.2.1’, (”, ”, ”), ‘x86_64’)
Interface language: zh_HK
Traceback (most recent call last):
File “calibre/gui2/preferences/plugins.py”, line 325, in add_plugin
File “calibre/customize/ui.py”, line 513, in add_plugin
File “calibre/customize/ui.py”, line 64, in load_plugin
File “calibre/customize/zipplugin.py”, line 298, in load
File “calibre/customize/zipplugin.py”, line 393, in _locate_code
calibre.customize.InvalidPlugin: The plugin in ‘/Users/ylchen/Downloads/Ebook-Translator-Calibre-Plugin_v1-2.zip’ is invalid. It does not contain a top-level __init__.py file
插件文件是通过哪种方式下载的?
用github和google drive都下载了一遍,版本是v1.1.0那个
我留意到你留言中错误提示中的插件文件名是 Ebook-Translator-Calibre-Plugin_v1-2.zip,而不是 Ebook-Translator-Calibre-Plugin_v1.1.0.zip,确定下载的是书伴提供的 ZIP 文件吗?
确定的,我就是在这个页面点进的下载链接,-1应该是因为我下载了两次,第二次的时候系统为了区分文件自动加了一个-1的后缀,我刚刚进行第三次下载的时候下载的文件变成了-2的后缀
建议检查一下文件的 MD5 值看是否和文中提供的一致。
感谢,问题解决了!我核对了MD5值发现不一致,原因是浏览器下载zip文件后会自动解压缩,我在安装插件前又手动将文件夹压缩回zip,导致插件不可用
原来是这样。如果需要手动压缩插件(比如从 GitHub 上拉取最新版本),需要注意,压缩文件时不要压缩包含文件的目录,而是直接压缩目录中的所有文件。不然 Calibre 无法正确识别插件。
后续会添加中英双排选项么
你指的是双栏排版吗?如果是的话 Calibre 应该是不支持生成双栏的。
翻译完成后输出到了我设定好的文件夹,但进去一看是个0k的空文件?