GitHub - dandibbert/ao3-translator · GitHub
Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

99 Commits

Folders and files

Repository files navigation

AO3 全文翻译+总结

一个功能强大的 Tampermonkey/Greasemonkey 用户脚本,为 Archive of Our Own (AO3) 提供智能翻译和章节总结功能。

主要特性

核心功能

  • 双引擎系统:独立的翻译引擎和总结引擎,可配置不同的模型和参数
  • 智能分块策略:精确的 token 计数和智能文本分块,优化 API 调用效率
  • 流式渲染:实时显示翻译进度,提供流畅的用户体验
  • 四视图切换:
    • 仅译文:只显示翻译后的中文内容
    • 仅原文:显示原始英文内容
    • 双语对照:中英文对照显示(翻译完成后可用)
    • 章节总结:显示 AI 生成的剧情总结

缓存系统

  • 本地缓存:自动保存翻译结果,避免重复翻译
  • 缓存管理:
    • 查看所有翻译缓存键
    • 清理单个页面或所有缓存
    • 导出缓存为 JSON 文件
    • 从 JSON 文件导入缓存
  • WebDAV 同步:支持通过 WebDAV 协议同步缓存到云端

用户界面

  • 悬浮按钮组:
    • 翻译按钮:开始翻译当前章节
    • 总结按钮:生成章节剧情总结
    • 下载按钮:下载当前译文缓存
    • 批量下载按钮:批量下载多个作品的缓存
    • 只计划按钮:仅生成翻译计划,不执行翻译
  • 长按菜单:长按主按钮显示更多操作选项
  • 工具栏:翻译后显示视图切换和缓存管理按钮
  • 移动端优化:响应式设计,支持触摸操作

安装方法

前置要求

  1. 安装浏览器扩展:

  2. 准备 OpenAI 兼容的 API:

    • OpenAI API
    • Azure OpenAI
    • 其他兼容 OpenAI API 格式的服务(如 DeepSeek、Claude 等)

安装步骤

  1. 点击 Tampermonkey 图标,选择"添加新脚本"
  2. 复制 ao3-transum (1).user.js 的全部内容
  3. 粘贴到编辑器中,保存
  4. 访问任意 AO3 作品页面,脚本将自动激活

使用指南

首次配置

  1. 打开设置面板

    • 点击页面右下角的主按钮(齿轮图标)
    • 或长按主按钮选择"设置"
  2. 配置 API 设置

    Base URL: https://api.openai.com
    API Path: v1/chat/completions
    API Key: sk-your-api-key-here
    
  3. 配置翻译模型

    模型名称: gpt-4-turbo-preview
    上下文窗口: 128000
    Max Tokens: 7000
    温度: 0.7
    
  4. 配置总结模型(可选,可与翻译模型相同或不同)

    模型名称: gpt-4-turbo-preview
    上下文窗口: 128000
    Max Tokens: 7000
    温度: 0.7
    
  5. 调整提示词(可选)

    • 翻译系统提示词:定义翻译风格和要求
    • 翻译用户提示词:包含 {{content}} 占位符
    • 总结系统提示词:定义总结风格
    • 总结用户提示词:包含 {{content}} 占位符

基本使用

翻译章节

  1. 打开任意 AO3 作品页面
  2. 点击右下角的"翻译"按钮
  3. 等待翻译完成(可实时查看进度)
  4. 使用工具栏切换视图模式

生成总结

  1. 点击"总结"按钮
  2. 等待 AI 生成章节剧情总结
  3. 切换到"总结"视图查看结果

视图切换

  • 仅译文:只显示中文翻译
  • 仅原文:显示原始英文
  • 双语对照:中英文并排显示(需翻译完成)
  • 总结:显示章节剧情总结

高级功能

缓存管理

  • 查看缓存:设置面板 → 缓存管理 → 查看翻译缓存键
  • 清除缓存:
    • 单页面:工具栏 → 清除翻译缓存
    • 全部:设置面板 → 清理所有翻译缓存
  • 导出缓存:设置面板 → 导出所有缓存为 JSON
  • 导入缓存:设置面板 → 从 JSON 导入缓存

WebDAV 同步

  1. 在设置面板配置 WebDAV:
    WebDAV 地址: https://your-webdav-server.com/path
    用户名: your-username
    密码: your-password
    
  2. 点击"上传缓存到 WebDAV"或"从 WebDAV 下载缓存"

批量下载

  1. 点击"批量下载"按钮
  2. 输入作品 ID 列表(每行一个)
  3. 选择下载选项
  4. 等待下载完成

只计划模式

  • 点击"只计划"按钮
  • 查看翻译分块计划,但不执行实际翻译
  • 用于预估 token 消耗和成本

调试模式

在设置面板启用"调试模式",在浏览器控制台查看详细日志:

// 控制台将显示:
[AO3X] 分块计划
[AO3X] API 请求详情
[AO3X] 缓存操作

配置说明

模型参数

参数 说明 推荐值
上下文窗口 模型支持的最大 token 数 根据模型而定
Max Tokens 单次响应的最大 token 数;也用于分块、长度估算与重试扩容 7000
请求时不发送 Max Tokens 仅影响 API 请求体;开启后仍会继续使用 Max Tokens 做分块与重试计算 关闭
温度 控制输出随机性(0-2) 0.7
Top P 核采样参数(0-1) 1
推理强度 o1 系列模型专用 none/low/medium/high

分块策略参数

参数 说明 默认值
预留 token 为提示词预留的 token 数 384
单次尝试 优先尝试单次翻译全文 true
单次松弛比 单次翻译的安全余量 0.15
打包松弛 分块打包的紧凑度 0.95
输出/输入比 译文与原文的 token 比例 1.0

并发与重试

参数 说明 默认值
并发数 同时进行的翻译请求数 3
空闲超时 无响应时的超时时间(ms) -1(禁用)
硬超时 强制超时时间(ms) -1(禁用)
最大重试 失败后的重试次数 1

提示词模板

翻译提示词

系统提示词:

你是专业的文学翻译助手。请保持 AO3 文本结构、段落层次、行内格式(粗体、斜体、链接),人名不做翻译,术语翻译时意译,以保证不了解者也能看懂为准则,语气自然流畅。可以调整语序用词,但不要省略有实质性内容的语句。请保证译文地道,自然,有韵味,符合原文语气和上下文情境。

用户提示词:

你是一个专业的文学翻译助手,请将以下 AO3 正文完整翻译为中文,保证译文地道,自然,有韵味,符合原文语气和上下文情境。人名不做翻译,术语翻译时意译,以保证不了解者也能看懂为准则,保持 HTML 结构与行内标记,仅替换可见文本内容,不要漏翻除人名外的英文内容:
{{content}}
(请直接返回 HTML 片段,不要使用代码块或转义。)

总结提示词

系统提示词:

你是专业的文学内容总结助手。请准确概括故事情节、人物关系和重要事件,保持客观中性的语调,不要做文本分析,仅输出总结内容。

用户提示词:

请对以下AO3章节内容进行剧情总结,重点包括:主要情节发展、角色互动、重要对话或事件。请用简洁明了的中文总结:
{{content}}
(请直接返回总结内容,不需要格式化,不需要做文本分析,人名保留原文不翻译。)

常见问题

Q: 翻译失败怎么办?

A:

  1. 检查 API 配置是否正确
  2. 确认 API Key 有效且有余额
  3. 查看浏览器控制台的错误信息
  4. 点击工具栏的"重试未完成"按钮
  5. 启用调试模式查看详细日志

Q: 如何降低 API 成本?

A:

  1. 使用更便宜的模型(如 gpt-3.5-turbo)
  2. 减小 Max Tokens 值
  3. 调整分块策略参数,减少请求次数
  4. 充分利用缓存系统,避免重复翻译

Q: 双语对照按钮为什么是灰色的?

A: 双语对照功能需要翻译完全完成后才能使用。等待所有分块翻译完成,按钮会自动高亮。

Q: 如何备份翻译缓存?

A:

  1. 方法一:设置面板 → 导出所有缓存为 JSON
  2. 方法二:配置 WebDAV 同步到云端

Q: 支持哪些 AI 模型?

A: 支持所有兼容 OpenAI API 格式的模型,包括:

  • OpenAI: GPT-4, GPT-3.5, o1 系列
  • Azure OpenAI
  • DeepSeek
  • Claude (通过兼容层)
  • 其他第三方 API 服务

Q: 移动端能用吗?

A: 可以。脚本已针对移动端优化,支持触摸操作和响应式布局。需要在移动浏览器上安装支持用户脚本的扩展(如 Firefox + Tampermonkey)。

技术特性

  • 精确 token 计数:使用 tiktoken 库准确计算 token 数量
  • 智能分块算法:根据模型上下文窗口自动优化分块策略
  • 流式渲染:支持 SSE 流式响应,实时显示翻译进度
  • 错误处理:自动重试、超时检测、详细错误提示
  • CORS 绕过:使用 GM_xmlhttpRequest 绕过跨域限制
  • HTML 保持:保留原文的 HTML 结构和格式标记
  • 安全性:HTML 内容经过清理,防止 XSS 攻击

版本历史

v1.2.8

  • 翻译+总结双引擎系统
  • 精确 token 计数
  • 智能分块策略
  • 流式渲染
  • 章节总结功能
  • 独立缓存系统
  • 四视图切换
  • 长按悬浮菜单
  • 移动端优化
  • WebDAV 同步支持

许可证

本脚本仅供个人学习和研究使用。使用本脚本时请遵守:

  • AO3 网站的使用条款
  • 相关 API 服务的使用协议
  • 当地法律法规

贡献

欢迎提交问题报告和功能建议。

免责声明

  • 本脚本不存储或传输任何 AO3 内容到第三方服务器(除了配置的 API 端点)
  • 翻译质量取决于所使用的 AI 模型
  • API 调用产生的费用由用户自行承担
  • 请合理使用,避免对 AO3 服务器造成过大负担

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages