Skip to content
书伴 edited this page May 25, 2024 · 42 revisions

English · 简体中文


主要功能

  • 支持两种翻译模式:批量模式和高级模式,应用于不同使用场景
  • 支持所选翻译引擎所支持的语言(如 Google 翻译支持 134 种)
  • 支持多种翻译引擎,包括 Google 翻译、ChatGPT、Gemini、Claude、DeepL 等
  • 支持自定义翻译引擎(支持解析 JSON 和 XML 格式响应)
  • 支持所有 Calibre 所支持的电子书格式(输入 48 种,输出 20 种)以及 .srt、.pgn 等额外格式
  • 支持批量翻译电子书,每本书的翻译过程同时进行互不影响(批量模式)
  • 支持导出电子书前浏览、编辑、自定义翻译内容(高级模式)
  • 支持缓存翻译内容,在请求失败或网络中断后无需重新翻译
  • 提供大量自定义设置,如将翻译的电子书存到 Calibre 书库或指定位置

安装插件

首先确保你的操作系统已经安装了 Calibre,然后通过以下任意方式安装本插件。

【 通过 Calibre 安装 】

  1. 首先打开 Calibre 并依次点击其菜单【 首选项...插件获取新的插件 】;
  2. 然后在插件列表中选中 Ebook Translator 然后点击 【 安装 】 按钮(请留意,首次安装此插件时,要选择把图标显示在主工具栏上);
  3. 最后关闭并重新打开 Calibre 即可正常使用。

【 通过插件文件安装 】

  1. 首先前往 https://translator.bookfere.com 下载插件文件(你可以选择“稳定版本”或“最新版本”);
  2. 然后打开 Calibre 并依次点击其菜单【首选项 → 插件 → 从文件加载插件】,弹出的对话框中选择下载的扩展名为 .zip 的插件文件完成安装(请留意,首次安装此插件时,要选择把图标显示在主工具栏上);
  3. 最后关闭并重新打开 Calibre 即可正常使用。

如果安装插件后,插件图标未出现在 Calibre 的主工具栏上,可以依次点击 Calibre 的菜单【首选项 → 工具与菜单】,在弹出的对话框中点击下拉菜单并选择“主工具栏”,然后在左栏找到并选中插件图标,点击中间的右箭头按钮【>】将其添加到右栏,最后点击【应用】按钮即可。


使用方法

【 高级模式 】

  1. 在 Calibre 书库中选中要推送的电子书,点击 Calibre 主工具栏上的【翻译书籍】图标按钮,或点击图标下拉菜单选择【高级模式】;
  2. 在弹出的提示框点击选择“高级模式”(首次打开);
  3. 选择“输入格式”和“输出格式”,点击【开始】进入“高级模式”翻译主界面;
  4. [可选]点击【删除】按钮删除需要忽略翻译的选中段落;
  5. 通过以下两种方式进行翻译:
    • 点击【翻译所选】按钮翻译选中的段落
    • 点击【翻译全部】按钮翻译全部电子书内容
  6. [可选]翻译完成后,在右方“校对”区域,通过编辑下方文本并点击【保存】,可以更改翻译结果;
  7. 点击【输出】按钮,存储翻译完成后的电子书。输出任务将被推送添加到 Calibre 的任务队列。

【 批量模式 】

  1. 在 Calibre 书库中选中要推送的电子书,点击 Calibre 主工具栏上的【翻译书籍】图标按钮,或点击图标下拉菜单选择【批量模式】;
  2. 在弹出的提示框点击选择“批量模式”(首次打开);
  3. 进入插件主界面,在这里你可以修改“书名”(作为保存文件时使用的文件名),分别为每一本书选择“输入格式”、“输出格式”、“来源语言”(一般情况下“自动探测”即可满足需求)、“目标语言”(默认使用 Calibre 界面当前所用的语言);
  4. 点击下方的【翻译】按钮即可开始翻译。

插件会将每本电子书的翻译任务推送添加到 Calibre 的任务队列,你可以通过点击 Calibre 右下角的【任务】查看推送详情,双击任务条目可以进入日志实时查看正在翻译的内容。


缓存管理器

通过以下两种方式进入“缓存管理器”界面:

  • 点击 Calibre 主工具栏上的【翻译书籍】图标下拉菜单选择【缓存】
  • 点击【缓存】设置选项里的“管理”链接

【 缓存路径 】

  • 选择:通过选择一个空文件夹为缓存文件设置自定义路径。选择完成后,旧的缓存文件将被移至新文件夹中,新生成的缓存也将存储在新路径下。
  • 重置:将缓存路径恢复至默认路径。重置后,旧的缓存文件将被移至默认路径下,新生成的缓存也将存储在默认路径下。
  • 打开:打开缓存路径。

【 缓存数据 】

  • 全部清除:删除所有缓存数据
  • 删除:删除所选缓存文件

另外你还可以通过右键菜单删除所选缓存文件。


设置说明

你可以通过“通用”、“引擎”和“内容”选项定制插件功能。

通用

【 偏好模式 】

  • 高级模式:点击插件图标,使用“高级模式”进行翻译。此模式为翻译过程提供了额外选项,允许更多的控制和自定义。
  • 批量模式:点击插件图标,使用“批量模式”进行翻译。此模式允许用户一次性翻译多个项目,提升翻译效率节省时间。

【 输出路径 】

  • 书库 [默认]:电子书翻译完成后会放入 Calibre 书库中
  • 路径:电子书翻译完成后会存放到指定目录中

为什么我找不到翻译完成的电子书? 在 Windows 系统中,有一个叫做“存储感知”的功能,它会自动清理长时间运行程序的临时文件。你可以尝试关掉此功能,或通过 Calibre 的环境变量 CALIBRE_TEMP_DIR 为其重新指定一个文件夹。

【 偏好格式 】

  • 输入格式[默认自动选择]:为电子书选择偏好输入格式
  • 输出格式[默认 EPUB]:为电子书选择偏好输出格式

【 合并翻译 】

  • 启用 [默认不勾选]:启用合并翻译功能

你可以在这里设置单次要翻译的字符数量,默认值为 2000。

【 HTTP 代理 】

  • 开启 [默认不勾选]:开启网络代理
  • 主机:支持 IP 和域名
  • 端口:范围 0-65536
  • 测试:测试代理的连通性

如果你的 HTTP 代理需要用户名或用户名加密码,你可以用 @ 将这些信息附加到 IP 或域名上,比如,[email protected]username:[email protected](使用 : 分隔用户名和密码)。

【 缓存 】

  • 开启 [默认勾选]:开启翻译内容的缓存功能

开启缓存功能可以避免请求失败或网络中断后对已翻译过的内容进行重新翻译。点击“管理”链接可以打开“缓存管理器”窗口,对缓存数据进行删除或更改路径等管理操作。

【 通知 】

  • __开启———— [默认勾选]:翻译完毕后显示通知

【 日志 】

  • 显示翻译 [默认勾选]:可以在翻译任务各自的日志窗口实时查看翻译内容

【 搜索路径 】

一行一个路径。插件需要用到的外部程序会在这些路径中搜索。

引擎

【 翻译引擎 】

  • Google (Free) [默认]:免费的翻译引擎
  • Google (Basic):需要 API 密钥(获取
  • Google (Basic) ADC:需要设置 ADC(步骤
  • Google (Advanced) ADC:需要设置 ADC(步骤
  • ChatGPT(OpenAI):需要 API 密钥(获取
  • ChatGPT(Azure):需要 API 密钥(获取
  • Gemini Pro:需要 API 密钥(获取
  • Claude (Anthropic):需要 API 密钥(获取
  • DeepL:需要 API 密钥(获取
  • DeepL (Pro):需要 API 密钥(获取
  • DeepL (Free):免费的翻译引擎 (频率有限制)
  • Microsoft Edge (Free):免费的翻译引擎
  • 有道:需要 APP key 和 secret(获取
  • 百度:需要 APP id 和 key(获取
  • [自定义]:自定义任意翻译引擎

注意,除了 Google (Free) 和 DeepL (Free) 不需要 API 密钥外,其他内置翻译引擎都需要你注册相应账户(可能需要付费)获取 API 密钥才能使用。另外,由于插件在开发时缺少 DeepL 的 API 密钥,根据其官网提供的响应信息样例,程序可以正常运行,实际运行情况未知。

对于 ChatGPT,如果你要使用第三方提供的 API,需要在设置中修改 API 端点,一般是将原域名 api.openai.com 替换成提供商的域名即可。比如你的提供商的域名为 example.com,那么 API 端点应为 https://example.com/v1/chat/completions。具体可参考第三方提供商的开发文档。

如果你打算以 Application Default Credentials(ADC)的方式使用 Basic 或 Advanced 版本的 Google 翻译引擎,需要确保你的操作系统已安装 Google Cloud CLI 并且能够正常运行 gcloud 命令。然后参考文档 Set up Application Default Credentials 配置 ADC。更多相关配置信息请查阅 Google Cloud Translate 官方文档

如果选择使用需要付费的翻译引擎,建议前往相应的官方文档查看计费规则。比如,ChatGPT,可以使用其官方提供的工具 Tokenizer 估算要翻译字数大约会消耗多少 token 以便预估费用。

你可以点击【测试】按钮对当前所选翻译引擎进行测试。如果翻译引擎的 API 提供了余量信息,会在测试翻译引擎界面下方显示。

点击【自定义】按钮可进入“自定义翻译引擎”界面,在这里可以添加、删除或修改翻译引擎。

配置自定义翻译引擎的数据格式是 JSON 格式,每次新建一个自定义翻译引擎后都会看到如下所示的模板数据:

{
    "name": "New Engine - 36e05",
    "languages": {
        "source": {
            "Source Language": "code"
        },
        "target": {
            "Target Language": "code"
        }
    },
    "request": {
        "url": "https://example.api",
        "method": "POST",
        "headers": {
            "Content-Type": "application/json"
        },
        "data": {
            "source": "<source>",
            "target": "<target>",
            "text": "<text>"
        }
    },
    "response": "response"
}

其中包含 4 个键值对,分别是 namelanguagesrequestresponse,其含义分别如下,你需要根据实际情况进行修改:

  • name:显示在界面上的名称。如“Bing”
  • languages:翻译引擎支持的语言代码。格式为 {"语言名称": "语言代码"}。具体信息需参考翻译引擎 API 文档。也可以分别填写来源语言和目标语言。
    • source:来源语言。格式同上
    • target:目标语言。格式同上
  • request:请求信息。包含如下键值对
    • url:API 网址。具体信息需参考翻译引擎 API 文档
    • method:请求方法(可选)。省略会默认使用 GET
    • headers:请求标头(可选)。可参考翻译引擎 API 文档填写
    • data:请求数据。可以是 JSON 对象也可以是字符串,JSON 对象默认情况下会被转换成 dict 对象并编码成 application/x-www-form-urlencoded 格式发送,如果想要以普通字符串形式发送,需要同时指定合适的请求标头,如 Content-Type: application/json。数据包含 3 个内置变量,其中 <source><target> 分别对应之前填写的语言代码,如不需要可省略,<text> 表示发送给翻译引擎的文本,必须保留。其他具体请求信息需参考翻译引擎 API 文档。
  • response:根据自己的需要填写解析响应信息的表达式,以抽取其中的译文文本。响应信息包含在变量 response 中,它是一个 JSON 对象(如果翻译引擎返回的数据是 JSON 格式)或 lxml 的 Element 对象(如果翻译引擎返回的数据是 XML 格式)。

自定义翻译引擎数据填写完成后可以点击界面下方的【验证】按钮检查数据是否有效,最后点击【保存】按钮保存所有的修改。

【 偏好语言 】

  • 来源语言 [默认自动探测]:为来源语言设置首选语言
  • 目标语言 [默认界面语言]:为目标语言设置首选语言

【 HTTP 请求 】

  • 并发限制 [默认值跟随引擎]:并发请求数量限制。如果设置为 0,无限制(Calibre 版本低于 3.7 限制为 10)
  • 时间间隔(秒) [ChatGPT 默认 20, DeepL(Free) 默认 1, 其他默认 0]:请求翻译引擎的时间间隔
  • 重试次数 [默认 3]:当请求翻译引擎失败后要重试的次数
  • 超时(秒) [默认 10]:单个请求翻译引擎的超时时间

插件对翻译引擎的每次请求最长可持续 300 秒,超时后会按照指定的次数进行重试,每次重试的等待时间会逐次加长。如果翻译中断或拒绝服务,建议酌情加长请求时间间隔。

【 中止翻译 】

  • [默认 10]:超过连续错误次数中止翻译。发生指定数量的错误后,翻译过程将停止。如果设置为 0,遇到错误后翻译不会停止,而是继续翻译后面的内容

【 调节 ChatGPT 】

  • 提示词:自定义翻译提示词
  • 端点:ChatGPT API 提供的 URL
  • 模型:选择不同功能和价位的 ChatGPT 模型
  • 采样:为 OpenAI API 选择设定不同的 temperature 和 top_p
  • 文本流:启用类似 ChatGPT 的文本流

设置详情请参阅 ChatGPT API referenceAzure OpenAI reference

【 调节 Gemini Pro 】

  • 提示词:自定义翻译提示词
  • temperature:控制输出的随机性
  • topP:采样时所考虑的标记最大累积概率
  • topK:采样时所考虑的标记最大数量

设置详情请参阅 Gemini DocsGemini API reference

【 调节 Claude 】

  • 提示词:自定义翻译提示词
  • 端点:Claude API 提供的 URL
  • 模型:选择不同功能和价位的 Claude 模型
  • 采样:为 Claude API 选择设定不同的 temperature 和 top_p
  • 文本流:启用类似 ChatGPT 的文本流

设置详情请参阅 ChatGPT API referenceAzure OpenAI reference

内容

【 译文位置 】

  • 原文下方 [默认]:将译文添加到原文后
  • 原文上方:将译文添加到原文前
  • 原文右边:将译文添加到原文右边
  • 原文左边:将译文添加到原文左边
  • 仅保留译文:删除原文只保留译文

【 原文颜色 】

  • 颜色值:CSS 颜色值,如 #666666, gry, rgb(80, 80, 80)

【 译文颜色 】

  • 颜色值:CSS 颜色值,如 #666666, gry, rgb(80, 80, 80)

你可以通过点击【选择】按钮从调色盘选取颜色,也可以手动输入颜色值,颜色值可参考 MDN 有关“颜色值”的文档。如果留空则不使用自定义颜色。

【翻译词汇表】

  • 启用 [默认不勾选]:启用所选择的翻译词汇表

翻译词汇表的作用是为某些词汇指定特定翻译,或让翻译引擎忽略翻译某些词汇。

词汇表是扩展名为 .txt 的纯文本文件,格式如下所示,如果词汇需要指定翻译,则两行为一组,上为原文,下为译文,如果需要保持词汇不被翻译,则一行为一组,每组之间由一个空行隔开。

The Eiffel Tower
埃菲尔铁塔

The Statue of Liberty

【 首选元素 】

首选匹配 CSS 选择器 的元素(一行一条规则)。如:table, table#report, table.list。即,一旦某元素匹配这些规则停止进一步抽取。

【 忽略元素 】

忽略匹配 CSS 选择器 的元素(一行一条规则)。如:table, table#report, table.list。即,不要翻译匹配这些规则的元素。

【 忽略段落 】

不要翻译已抽取元素中包含这些关键词的元素。

  • 模式
    • 关键词 [默认]:排除带关键词的内容(一行一条关键词)
    • 关键词(区分大小写):排除带关键词的内容,字母区分大小写(一行一条关键词)
    • 正则表达式:排除匹配正则表达式规则的内容(一行一条规则)
  • 范围
    • 仅文本 [默认]:仅匹配文本
    • HTML元素:匹配整个HTML元素

正则表达式语法可参考 Python 官方文档中的“正则表达式语法”。

【 保留元素 】

保留匹配 CSS 选择器 的元素(一行一条规则)。如:table, table#report, table.list。即,保留已抽取元素中匹配这些规则的元素。

【 电子书元数据 】

  • 翻译元数据 [默认不勾选]:翻译所有元数据信息
  • 语言标记 [默认不勾选]:将“目标语言”附加到标题元数据中
  • 语言代码 [默认不勾选]:将元数据中的语言替换成“目标语言”
  • 附加主题: 添加指定的主题内容到元数据(一行一个主题)