# 📚 文译
**一条命令,从 EPUB 到可读的中文译本。**
全书预扫 · 实时术语闭环 · 多阶段审校
[](https://www.python.org/)
[](https://github.com/BigDawnGhost/wenyi/actions/workflows/tests.yml)
[](../../LICENSE)
[](https://github.com/BigDawnGhost/wenyi/stargazers)
[](https://discord.gg/Tybfva4HT)
[English](../../README.md) | **简体中文**
---
## 目录
- [为什么选择文译](#为什么选择文译)
- [核心特性](#核心特性)
- [快速开始](#快速开始)
- [支持格式](#支持格式)
- [翻译流水线](#翻译流水线)
- [文档](#文档)
- [憧憬与不足](#憧憬与不足)
- [社区](#社区)
- [星标历史](#星标历史)
- [许可证](#许可证)
---
## 为什么选择文译
| 常见方案 | 文译 |
|---|---|
| 逐段翻译,彼此孤立,缺乏上下文 | 全书预扫 + 逐章梗概 + 滚动上下文 |
| 术语靠人工事后整理 | 翻译中实时抽取专有名词,自动检测译法冲突,立即影响后续批次 |
| 一次性翻译,中断即作废 | 批次检查点 + 章节状态记录,任意中断后重新执行同一命令即可续跑 |
| 模型直出,无系统性质控 | 翻译 → 润色 → 章末回译抽检 → 最终审校 → 跨章一致性 QA |
文译为**长文本**设计 —— 长篇小说、社科专著、纪实文学……
---
## 核心特性
- **全书理解** — 翻译前预扫源文,生成逐章梗概和全书概览,注入每批翻译上下文
- **实时术语闭环** — 翻译中自动提取人名、地名、术语和固定表达;检测译法冲突并提示人工裁决
- **多阶段质量保证** — 可选润色(强档模型重译)、全书最终 AI 审校、回译抽检、跨章一致性 QA
- **断点续跑** — 批次级检查点、章节状态记录和原子状态写入;任意中断后重新执行同一命令即可续跑
- **多种 LLM 支持** — DeepSeek、OpenAI、OpenRouter、Google Gemini、Ollama、vLLM,以及通用 OpenAI 兼容端点
- **原生 EPUB 回填** — 基于原书 XHTML 模板替换译文片段,尽量保留原书样式、图片、目录和锚点
- **双语对照输出** — 可选原文译文对照版,原文视觉淡化,支持深色模式
---
## 快速开始
### 环境要求
需要 Python 3.10+ 与 [uv](https://docs.astral.sh/uv/)。
### 安装
```bash
git clone https://github.com/BigDawnGhost/wenyi.git
cd wenyi
uv sync
```
### 配置
设置 API 密钥:
```bash
export DEEPSEEK_API_KEY=sk-...
```
### 一键翻译
```bash
uv run trans-novel translate book.epub
```
解析书籍、检测源语言、预扫全书、翻译所有章节、组装输出,一步完成。默认在 `output/` 目录生成单语中文版 `book.zh.epub`。
### 分步工作流
```bash
# 1. 译前准备 — 解析、分析、预扫(不翻译正文)
uv run trans-novel prepare book.epub
# 2. 翻译 — 从准备状态续跑
uv run trans-novel translate book.epub
# 3. 独立审校 — 基于最终术语库的逐章审校
uv run trans-novel review book.epub
# 4. 一致性 QA
uv run trans-novel qa book.epub
# 5. 查看进度
uv run trans-novel status book.epub
```
### 中断续跑
每个完成的批次立即持久化。中断后重新执行同一命令即可续跑:
```bash
uv run trans-novel translate book.epub
```
### 命令行覆盖
```bash
uv run trans-novel translate book.epub --polish --review --qa # 启用全部质量阶段
uv run trans-novel translate book.epub --no-polish # 关闭润色
uv run trans-novel translate book.epub --bilingual # 同时生成双语版
uv run trans-novel translate book.epub --chapter 0 # 仅翻译第一章(索引从 0 开始)
uv run trans-novel translate book.epub --format txt # 导出为纯文本
```
最终审校默认关闭。设置 `pipeline.review: true` 后,一键流程会在全书翻译完成、
术语库达到最终状态后再统一执行审校;也可以独立运行 Agent Review:
```bash
uv run trans-novel review book.epub
```
每次 Review 都会从头全量运行,并发检查文本块,并可按需获取跨章证据后处理互相
矛盾的一致性建议。确认的问题可生成仅限本次运行的完整单段影子修订;下一轮从头盲审
只会看到影子译文,不会收到上一轮的问题说明。正式译文和正式状态始终不变,修订、
复审结果及未解决建议集中写入 `state/<书名>/reviews/review-<时间戳>/result.json`。
---
## 支持格式
| 输入 | 输出 |
|---|---|
| EPUB、FB2、TXT、Markdown、HTML、PDF | EPUB(单语 / 双语)、TXT、HTML、Markdown |
- PDF 输入首次需 `MINERU_API_KEY` 调用外部转换服务,转换后的 HTML 缓存复用。
- EPUB 输出尽量保留原书样式、图片、目录和锚点,竖排转为横排以适配中文阅读。
- 源语言默认由模型自动识别,也可在 `config.yaml` 中固定为 ISO 639-1 语言代码。
---
## 翻译流水线
```mermaid
flowchart TD
A[输入文件] --> B[解析章节并检测语言]
B --> C[分析风格并建立初始术语]
C --> D[可选并行预扫