01 用 AI 翻译一本书?先问自己三个问题
把一本书丢给 ChatGPT,说"翻译成中文"——听起来很美好。
但实际体验呢?
上下文窗口不够。 一本 10 万字的书,AI 一次吞不下。要么分段翻译,要么被截断。
术语不一致。 "Harry Potter"翻到第三章变成了"哈利·波特",第五章又变回了"哈里·波特的"。人名、地名、专业名词,全书没有一个统一的。
代词指代不清。 "他走了"——谁走了?上一段的主角还是配角?没有上下文,AI 只能瞎猜。
格式全丢了。 PDF 转出来全是乱码,图表没了,排版散了。
deusyu/translate-book 就是来解决这些问题的。

这是一个完整的翻译流水线——从 PDF/DOCX/EPUB 输入,到多格式输出,全自动。
02 完整流水线:从一本书到四份翻译稿
整个流程分六步:
PDF/DOCX/EPUB → Calibre 转 HTMLZ → Markdown 分块 → 并行翻译 → Manifest 校验 → 合并输出Step 1:格式转换
Calibre 把 PDF / DOCX / EPUB 转为 HTMLZ,再提取为 Markdown。
Step 2:分块
把 Markdown 拆成约 6000 字符的 chunk(chunk0001.md, chunk0002.md...),每个 chunk 独立翻译。
Step 3:建术语表
翻译之前,先采样 5 个 chunk(开头、结尾、中间均匀分布),提取专有名词和领域术语,建立 glossary.json。
比如《三体》里的"面壁者"→"Wallfacer",确保全书统一。
Step 4:并行翻译
启动 8 个并发 subagent,每个负责一个 chunk 的翻译。
每个 subagent 都有独立的 context window,防止上下文累积导致输出截断。
Step 5:Manifest 校验
用 SHA-256 哈希追踪每个 chunk 的翻译结果,确保没有陈旧或损坏的输出被合并。
Step 6:合并输出
Pandoc 转 HTML(带浮动目录)→ Calibre 生成 DOCX / EPUB / PDF。
最终输出 4 种格式:
• output.md— 合并后的翻译文本• book.html— 带浮动目录的网页版• book.docx— Word 文档• book.epub— 电子书• book.pdf— 可打印 PDF
03 三个关键技术细节
这个项目最硬核的地方在于它解决了翻译中的三个经典问题:
术语一致性:glossary.json
每个 chunk 翻译时,自动注入对应的术语表作为硬约束。
更妙的是:术语表是可编辑的。你发现某个术语翻译错了,改一下 glossary.json 重新运行,只重译受影响的 chunk,不用从头再来。
代词指代不清:邻居上下文
每个 chunk 的翻译 prompt 里,注入了前一个 chunk 的最后 300 字符和后一个 chunk 的前 300 字符。
这样 AI 就知道"他"指的是谁,"它"指的是什么。
中断恢复:Chunk 级别 Resume
run_state.json 记录每个 chunk 的翻译状态。如果翻译中途中断,重新运行时跳过已完成的 chunk,只翻译剩下的。
04 不只是翻译:它是一个完整的 Skill
安装很简单:
npx skills add deusyu/translate-book -a claude-code -g然后在 Claude Code 里说:
translate /path/to/book.pdf to Chinese或者用斜杠命令:
/translate-book translate /path/to/book.pdf to JapaneseSkill 会自动跑完整个流水线——转换、分块、并行翻译、校验、合并、导出。
支持的语言:zh、en、ja、ko、fr、de、es(可扩展)。
05 技术架构
大多数 AI 翻译工具失败的根本原因:试图用一个 session 翻译整本书。
translate-book 的做法是拆解 + 并行 + 校验:
核心设计原则:
• Scripts 做 bookkeeping(确定性操作) • LLMs 做语义翻译(不可确定性操作) • Single writer for shared state(只有一个 writer 写共享状态) • Conservative merge(新实体需要证据,别名合并需要 LLM 判断)
写在最后
翻译一本书这件事,看似简单,实则复杂。
术语一致性、代词指代、格式保留、中断恢复——每一个都是痛点。
translate-book 把这些问题都解决了,而且是用开源 Skill 的方式。
装好、说一句、等它跑完——你就得到了一本完整的多格式翻译书。
项目地址:https://github.com/deusyu/translate-book
夜雨聆风