TranslateBooksWithLLMs
本地优先的长文档 AI 翻译工具,支持断点续传和 EPUB/DOCX/SRT 格式保留
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
本地优先的长文档 AI 翻译工具,支持断点续传和 EPUB/DOCX/SRT 格式保留
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象你正在翻译一本 800 页的英文技术书籍,用某个在线翻译工具跑了 6 个小时后,电脑突然蓝屏了。重新打开软件,一切从头开始——那种绝望感,每个译者都懂。而 TranslateBooksWithLLMs(以下简称 TBL)正是来解决这个问题的:它把 AI 大模型能力做成一个本地优先的桌面翻译工具,最核心的卖点是断点续传 + 格式保留,让你翻译任何长度的文件都不怕中断。
这个项目由独立开发者 hydropix 创建于 2025 年 5 月,目前 GitHub 已有 1845 颗星、242 个 Fork、33 个 open issue,2026 年 6 月 11 日还有代码更新——说明项目仍在活跃维护。它支持的 AI 提供商包括 Ollama(本地免费)、OpenAI、OpenRouter、Mistral、DeepSeek、Gemini、Poe,覆盖了从完全免费本地运行到付费云端的各种场景。
TBL 的核心设计围绕两个痛点展开:格式保留和断点续传。
格式保留方面,工具支持 EPUB(电子书)、DOCX(Word 文档)、SRT(字幕)、TXT 四种格式。EPUB 和 DOCX 的解析分别由 src/core/epub 和 src/core/docx 模块处理,内部通过 src/core/chunking 做智能分块,将大文档切分为适合 LLM 上下文窗口的片段,同时记录 HTML/XHTML 标签位置,确保翻译完成后能精准还原原始格式。SRT 字幕的时间码同步也做了专项处理。
断点续传由 src/persistence/checkpoint_manager.py 管理,SQLite 数据库持久化翻译进度。即使 Docker 容器重启或翻译中断,重新启动后程序会从上次断点继续,无需从头来过。src/prompts/prompts.py 提供了翻译专用 prompt 模板,通过 few-shot 示例引导模型保持专业术语一致性。
支持的 AI 模型不设硬性限制——只要是 Ollama/OpenAI API 兼容格式,理论上都可以接入。README 建议 qwen3:14b 作为默认模型,实际使用中推荐 qwen2.5、llama3 等主流开源模型。并发翻译数可通过 PARALLEL_TRANSLATIONS 配置。
代码结构上,TBL 是一个典型 Python Web 应用:
| 模块 | 职责 |
|---|---|
translation_api.py | Flask Web 服务器入口,WebSocket 实时推送 |
translate.py | CLI 命令行入口,适合批处理 |
src/api/ | Flask 蓝图路由、认证、翻译状态管理 |
src/core/ | 核心翻译逻辑:文件解析、分块、LLM 调用、格式还原 |
src/persistence/ | SQLite checkpoint 管理 |
src/prompts/ | 翻译提示词模板 |
src/tts/ | 可选 TTS 语音合成(Edge-TTS) |
Web UI 基于 Flask + Flask-SocketIO 构建,前端静态文件在 src/web/static/,提供了实时进度显示和中断恢复能力。src/api/auth.py 实现了 API Key 管理,每个用户可独立配置自己的 AI 提供商凭证。
依赖库精简务实:flask/flask-socketio 做 Web 框架,python-dotenv 管理环境变量,aiofiles 异步文件操作,tiktoken 做 token 计数(防止超上下文限制),langdetect 自动检测源语言,mammoth/python-docx 处理 Office 文档格式。
TBL 提供了完整的容器化部署方案:
deployment/Dockerfile:基于 python:3.11-slim,安装 requirements.txt,暴露 5000 端口,配置健康检查(/api/health)docker-compose.yml:开箱即用,映射 translated_files、logs、data 三个卷,挂载点确保 checkpoint 和输出文件持久化docker-compose up -d,浏览器打开 http://localhost:5000,首次启动时选择 Ollama(本地)或粘贴 API Key(云端),全程无需配置代理或复杂环境本地运行的完整链路:Docker 容器内跑 Flask 服务 <-> Ollama 本地推理(或云端 API)<-> 返回翻译结果 <-> 写入 volumes。硬件需求极低——CPU 足够跑 Docker 即可,GPU 仅在使用 Ollama 本地推理大模型时才需要(推荐 8GB+ VRAM)。
TBL 的上手体验设计得很好:下载 Release 包 → 双击运行 → 打开浏览器,三步搞定,没有命令行门槛。但需要注意以下限制:
tests/ 目录下有大量技术保护测试用例(RTL 语言支持、HTML 实体处理、XHTML 分块等),说明团队在持续迭代TBL 代表了一个趋势:将 LLM 的强大能力封装成具体垂直场景的本地工具。它不追求"通用 AI",而是专注于"翻译长文档"这一个场景,把断点续传、格式保留、checkpoint 管理这些工程细节做到极致。
对于个人译者、研究者、技术写作者来说,TBL 提供了一条低成本翻译路径——Ollama + qwen3:14b 可以在没有网络的情况下翻译整本书,不依赖任何外部服务商,真正做到数据留在本地。相比昂贵的 DeepL/Google 翻译 API,TBL 的开源可控和零边际成本是核心优势。