Files
-----/tools/epub_review_editor

双语 EPUB 审校编辑器

当前版本:0.12.2

这个工具用于把生成后的中日双语 EPUB 打开成浏览器审校界面。用户可以直接修改中文译文,也可以标记“哪里翻得不好”,并把所有记录沉淀为可交给 Codex 的反馈文件。

版本规则

维护版本号使用 version = "0.1.0" 这种语义化格式:

层级 触发条件
PATCH 修复 bug 或兼容性小修
MINOR 新增向后兼容能力、API 字段或可选配置
MAJOR 破坏兼容的 API、配置或行为变更

本次从 0.1.0 升到 0.2.0,因为新增了独立上传、会话管理、下载接口与可选 --host 配置,且保持原命令行 EPUB 路径用法兼容。

0.2.1 修复目录章节识别:优先读取 EPUB 内部目录页的中文标题,并把目录锚点之间的多个正文 part 合并为同一章;左侧目录增加章节展开/收起按钮。

0.3.0 新增插图阅读能力:目录中会把 EPUB spine 里的插图页作为独立章节显示,阅读模式可直接查看图片;正文子章节标题统一使用 part0000 这类规整编号,方便长篇审校快速定位。

0.4.0 新增阅读型交互与 GPT 重翻:左侧目录/检索改为按需打开的独立侧栏;阅读模式去掉每段下方操作按钮,点击段落直接打开右侧精修与重翻面板,并在面板挤开正文后恢复原阅读位置;本地可配置 OpenAI 兼容 GPT API,对单段生成重翻候选,确认后再应用到编辑框。

0.4.1 修复后端/API 安全与结构细节:章节内插图与文字按 spine 顺序 flush,结构统计补充 text/image 细分字段;内部目录识别增加目录页/链接密度判定;结构和 /api/asset 仅允许已识别的 raster 图片并加 nosniff;重翻接口不再允许单次请求临时覆盖 Base URL 或模型后复用已保存密钥。

0.5.0 改进长篇目录与检索:目录章节标题不再用正文首段猜测,章节内插图作为次级条目挂在所属章节下,阅读时可按原 spine 顺序穿插显示;点击目录不会自动收起侧栏,桌面端正文会为常驻侧栏让位;检索新增“当前范围 / 全书全局”切换。

0.6.0 新增 GPT 提示词设置:可在网页中单独配置“翻译内容提示词”“格式与标点提示词”“角色状态与口吻提示词”,并提供默认预设;单段重翻只携带目标语句、相关名词表、少量前后文和角色口吻提示,候选输出会进行中文标点规整与术语 ruby 括号形式修正。

0.7.0 新增实时术语表能力:GPT 重翻会从配置的 mingcibiao.json 实时读取命中术语并写入提示词;网页中可查看当前术语表路径、搜索术语,新增、修改、删除条目并保存,保存后的术语会立即用于下一次重翻。

0.8.0 新增阅读位置恢复:阅读器会自动记录当前章节/part/插图、当前可见段落和滚动位置;重新打开服务、刷新页面或切回已有会话时,会回到上次阅读的位置。

0.9.0 收敛重翻与审校工具入口:顶栏复杂操作统一到“审校工具”;单段重翻只携带目标段落真实命中的术语,移除无关段落里的 Falchion/大砍刀全局注入,并按第一性原理精简 prompt。

0.10.0 新增阅读外观与沉浸阅读:阅读区可切换默认、护眼、夜间背景,并保存字号与行距;审校页顶部栏和阅读标题栏默认收起,鼠标移到页面上方时再显示;阅读区上一节/下一节按 part 或插图小章节移动。

0.11.0 新增书架页面:顶栏左上角提供“书架”入口,集中列出历史打开过的审校书籍;点击书籍可直接进入对应审校页面,并继续沿用该书的上次阅读位置。

0.11.1 修复沉浸顶栏在鼠标停留时过早收起的问题,并给前端静态资源加入版本参数,避免浏览器缓存旧脚本导致新入口不可用。

0.12.0 新增书架入口的 AI 翻译模块:可从书架选择日语 EPUB,设置 OpenAI 兼容 API、提示词、术语表、翻译范围与输出模式,后台显示翻译进度;完成后生成的中日双语或纯中文 EPUB 会自动加入书架。

0.12.1 新增一键启动入口:项目根目录提供 打开EPUB审校器.cmd,会自动准备本地 Python 环境、安装依赖并以前台浏览器打开书架/上传页。

0.12.2 修复一键启动入口首次运行时依赖检测会被 Flask 缺失的 traceback 中断的问题;现在会先安静检测依赖,缺失时自动安装,再启动网页工具。重复打开入口时会优先复用同版本已运行服务,并修正端口探测,避免多个服务同时监听同一端口。

独立安装

这个审校器现在可以脱离 Codex 使用,只需要 Python 和浏览器。把 tools/epub_review_editor 目录复制到其他电脑或服务器后,在该目录里安装依赖:

python -m venv .venv
.\.venv\Scripts\python -m pip install -r requirements.txt

Linux/macOS

python3 -m venv .venv
./.venv/bin/python -m pip install -r requirements.txt

启动

最方便的方式是在项目根目录双击:

打开EPUB审校器.cmd

第一次运行会在 tools/epub_review_editor/.venv 创建本地 Python 环境并安装依赖;之后会直接启动服务并打开浏览器。

不预先指定 EPUB,直接打开上传界面:

$env:PYTHONIOENCODING='utf-8'
python 'C:\Users\xin61\Documents\轻小说翻译持续改进\tools\epub_review_editor\server.py'

也可以像原来一样直接打开某个 EPUB:

$env:PYTHONIOENCODING='utf-8'
python 'C:\Users\xin61\Documents\轻小说翻译持续改进\tools\epub_review_editor\server.py' '<中日双语版.epub>' --daemon

默认会自动打开浏览器。如果没有自动打开,命令会打印 URL,例如:

http://localhost:5177

局域网或服务器部署时,把监听地址改为 0.0.0.0,并把审校数据目录固定到一个你会备份的位置:

python .\server.py --host 0.0.0.0 --port 5177 --review-root .\epub_review_sessions

当前版本没有登录鉴权,不要直接暴露到公网。需要远程使用时,优先放在可信局域网、VPN、反向代理鉴权或 SSH 隧道后面。

浏览器上传 EPUB

  • 启动时不带 EPUB 路径,会进入开始页。
  • 点击“选择 EPUB 文件”,上传中日双语 EPUB 后会自动创建审校会话。
  • 开始页会列出已有会话,换电脑或重启服务后可以继续打开之前的审校记录。
  • 顶栏左上角“书架”会列出历史打开过的书籍,适合在多本书之间快速切换;点击书籍后会进入对应审校页面。
  • 书架中每本书都有“翻译”按钮,可对日语 EPUB 发起 AI 翻译任务;输出 EPUB 会自动加入书架。
  • 上传的 EPUB、解包副本、反馈与导出文件都会保存在 --review-root 指定目录下。

能做什么

  • 阅读模式下按章节连续阅读日文原文与中文译文,不需要逐句点击。
  • 顶栏左上角可进入“书架”,集中查看历史打开过的书籍、审校进度和最近阅读记录,并跳转回对应审校页面。
  • 阅读区可切换默认、护眼、夜间背景,并调整字号与行距;设置会保存在当前浏览器中,下次打开继续沿用。
  • 审校页顶部标题栏与阅读标题栏默认隐藏,鼠标移到页面上方时显示,减少长文阅读时的遮挡。
  • 阅读区“上一节 / 下一节”按 part 或插图小章节移动,不再只跳顶层大章节。
  • 每个审校会话会自动保存上次阅读位置,下次打开会回到上次所在章节、part、插图或段落附近。
  • 左侧目录和检索默认隐藏,通过顶部“目录”“检索”两个按钮分别打开,不会把两种入口混在同一个常驻侧栏里。
  • 目录优先按 EPUB 内部目录页或 nav/toc 组织章节;章节下显示内部 part0000 形式的 part 与次级插图条目,可展开/收起,点击 part 后只看该 part,点击章节则按原 spine 顺序连续阅读正文和插图。
  • 插图页会作为所属章节的次级条目出现在目录里,点击后可在阅读模式中直接查看原 EPUB 图片;点击目录项不会自动隐藏左侧侧栏。
  • 检索支持“当前范围”和“全书全局”两种范围,适合在单章精查和整本书排查术语时切换。
  • 在阅读模式中点击段落即可打开右侧精修与重翻面板,直接编辑中文译文、标记问题或调用 GPT 重翻;打开/关闭面板时会尽量保持原来的阅读位置。
  • 精修模式保留原有逐段编辑界面,用于较细的逐段复审。
  • 可从“审校工具”统一配置 OpenAI 兼容的 base_urlmodel、API Key、重翻提示词与术语表,并对当前段落生成重翻候选;候选不会自动覆盖正文,需要点击“应用重翻”并保存。
  • 可在“审校工具”的“AI 设置与术语表”里配置并读取正式术语表,实时搜索、增删改术语并保存;单段重翻会按当前段落命中术语表条目,而不是只在提示词里泛泛要求遵守术语。
  • 可从书架进入“AI 翻译 EPUB”页面,对日语 EPUB 设置翻译内容提示词、格式与标点提示词、角色口吻提示词、术语表路径、翻译范围、输出为中日双语或纯中文 EPUB;任务在后台运行,页面实时显示进度与日志。
  • 直接编辑中文译文。
  • 标记问题段落或选中文本。
  • 记录问题类型、严重程度、标签、备注和可沉淀的长期规则。
  • 生成反馈文件,供 Codex 后续持续优化翻译和润色质量。
  • 将编辑写回 EPUB 解包内容。
  • 导出一份新的“网页审校版 EPUB”。

重要输出

每个 EPUB 会建立独立审校 session。通过浏览器上传时,默认位于:

epub_review_sessions\<timestamp>_<epub-name>_<hash>\

通过命令行直接指定 EPUB 时,仍沿用固定路径:

epub_review_sessions\<epub-name>_<hash>\

关键文件:

  • feedback/translation_feedback.jsonl:逐次保存的结构化反馈记录。
  • feedback/feedback_for_codex.md:适合直接给 Codex 阅读的审校反馈摘要。
  • exports/*_网页审校版_*.epub:导出的修订版 EPUB。
  • review_state/state.json:网页编辑器当前状态。
  • extracted/EPUB 解包后的工作副本。
  • translation_jobs/<job-id>/job.jsonAI 翻译任务状态、进度和日志。
  • translated_outputs/*_AI翻译_*.epub:AI 翻译模块生成并自动加入书架的 EPUB。

在服务器上使用时,“生成反馈”和“导出审校 EPUB”会返回浏览器可访问的下载地址,不需要登录服务器找文件。

使用建议

  • 正式长篇 EPUB 优先使用“阅读模式”:先在左侧点章节/part 连续读,看到问题再点段落快速编辑或标记。
  • 同时审校多本书时,优先从顶栏左上角进入“书架”,再选择目标书籍;从书架进入会恢复该书上次阅读位置。
  • 需要集中逐段复审时切到“精修模式”,左侧段落列表会跟随当前章节筛选。
  • 只想记录问题时:勾选“标记为翻译问题”,写备注,保存本段。
  • 想直接修正译文时:编辑中文译文后保存本段。
  • 想让 Codex 学习你的偏好时:把“可沉淀为长期规则”写具体,例如“某个术语只在原文实际出现时才进入重翻提示”。
  • 想单段重翻时:点击段落打开“审校工具”,先在“AI 设置与术语表”中保存 GPT 配置;提示词分为翻译内容、格式标点、角色口吻三块,可恢复预设。术语表路径会从当前项目中可唯一识别的系列 mingcibiao.json 推断,也可以改成其他 mingcibiao.json。再点“重翻本段”;满意后点“应用重翻”,最后保存本段记录。
  • 想整书 AI 翻译时:先上传或打开日语 EPUB,让它出现在书架里;在书架卡片点击“翻译”,保存 API 设置与术语表路径,默认先做前 20 段试译。确认效果后再把范围切换为全书。中日双语输出可直接进入审校;纯中文输出会入书架,但没有逐段双语审校行。
  • 术语表路径默认会从当前项目中可唯一识别的系列 mingcibiao.json 推断;如果无法唯一推断,请在页面里填写目标术语表路径。
  • 想调整术语时:打开“审校工具”的“AI 设置与术语表”,在术语表区域搜索、修改或新增条目,点击“保存术语表”;下一次重翻会重新读取已保存的最新术语。
  • 审校结束后点击“生成反馈”,再在聊天里告诉 Codex 读取 feedback_for_codex.mdtranslation_feedback.jsonl

当前限制

  • 当前解析规则针对本项目的“日文灰字 + 中文紧随其后”的双语 EPUB。
  • AI 翻译模块是可选辅助首译入口,不替代正式长卷的候选词确认、复审和 QA;默认试译前 20 段,避免误触发全书 API 成本。
  • 目录用于审校导航;插图可以阅读和跳转,但当前版本不提供图片内容编辑。
  • GPT API Key、提示词与术语表路径仅保存在 --review-root 下的本地 gpt_config.json,接口不会回传密钥;重翻时只能使用已保存的 Base URL 和模型,避免把密钥发往未确认端点。术语表编辑会直接写入配置路径指向的 JSON 文件,服务器部署时请保护好审校目录和术语表,不要把没有鉴权的服务暴露到公网。
  • 浏览器内保存的是审校工作副本;要生成 EPUB 文件,需要点击“导出审校 EPUB”。