如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
ghcr.io/hydropix/translatebookswithllms
参考标签:latest翻译书籍 · 本を翻訳する · 책을 번역하다 · किताबों का अनुवाद · Перевод книг · แปลหนังสือ · Μετάφραση βιβλίων · ترجمة الكتب
这是一款桌面端应用,支持通过本地或云端AI翻译书籍、字幕和文档。只需拖入文件、选择目标语言,即可获取翻译结果。
支持格式: EPUB、SRT、DOCX、PDF、TXT
🔗 https://github.com/hydropix/TranslateBooksWithLLMs/wiki - 可查找适配你目标语言的最优模型。
TranslateBook.exe(Windows 系统)或 ./TranslateBook(macOS 系统)。全部操作就是这么简单(就这么简单 · これだけ · 이게 다예요)。首次启动时,你需要选择翻译服务商:
ollama pull qwen3:14b。全程所有数据不会离开你的设备。[!NOTE] 首次运行时会自动创建
TranslateBook_Data文件夹,用于存储你的配置信息。macOS 系统注意事项:首次启动时,请前往系统设置 隐私与安全性,点击「仍要打开」即可正常启动应用。
| 服务商 | 类型 | 接入地址 |
|---|---|---|
| DeepSeek | 云端 | platform.deepseek.com |
| Gemini | 云端 | https://aistudio.google.com/apikey |
| Mistral | 云端 | https://console.mistral.ai/api-keys |
| NVIDIA NIM | 云端 | https://build.nvidia.com/ |
| Ollama | 本地 | ollama.com |
| OpenAI | 云端 | https://platform.openai.com/api-keys |
| OpenAI-Compatible | 本地(支持 llama.cpp、LM Studio、vLLM、LocalAI 等) | 指向你的服务端端点即可 |
| OpenRouter | 云端(支持 200+ 模型) | openrouter.ai/keys |
| Poe | 云端(多模型支持) | poe.com/api_key |
详细配置指引请参考 docs/PROVIDERS.md。
| 问题 | 解决方案 |
|---|---|
| Ollama 无法连接 | 确认 Ollama 已正常启动,执行 curl http://localhost:11434/api/tags 测试连通性 |
| 找不到指定模型 | 先执行 ollama list 查看本地已下载模型列表,再执行 ollama pull 模型名称 拉取对应模型 |
更多解决方案请查看 docs/TROUBLESHOOTING.md。
git clone https://github.com/hydropix/TranslateBooksWithLLMs.git
cd TranslateBookWithLLM
ollama pull qwen3:14b # 下载所需模型
# Windows 系统
start.bat
# Mac/Linux 系统
chmod +x start.sh && ./start.sh
运行完成后,Web 界面将自动在 http://localhost:5000 打开。
# 基础用法:自动生成输出文件 "book (Chinese).epub"
python translate.py -i book.epub -sl English -tl Chinese
# 使用 OpenRouter 服务商
python translate.py -i book.txt --provider openrouter \
--openrouter_api_key YOUR_KEY -m anthropic/claude-sonnet-4 -tl French
# 使用 OpenAI 服务商
python translate.py -i book.txt --provider openai \
--openai_api_key YOUR_KEY -m gpt-4o -tl French
# 使用 Gemini 服务商
python translate.py -i book.txt --provider gemini \
--gemini_api_key YOUR_KEY -m gemini-2.0-flash -tl French
# 使用 Mistral 服务商
python translate.py -i book.txt --provider mistral \
--mistral_api_key YOUR_KEY -m mistral-large-latest -tl French
# 使用 DeepSeek 服务商
python translate.py -i book.txt --provider deepseek \
--deepseek_api_key YOUR_KEY -m deepseek-v4-pro -tl French
# 使用 Poe 服务商
python translate.py -i book.txt --provider poe \
--poe_api_key YOUR_KEY -m Claude-Sonnet-4 -tl French
# 使用 NVIDIA NIM 服务商
python translate.py -i book.txt --provider nim \
--nim_api_key YOUR_KEY -m meta/llama-3.1-8b-instruct -tl French
# 使用本地兼容 OpenAI 接口的服务端(llama.cpp、LM Studio、vLLM 等)
python translate.py -i book.txt --provider openai \
--api_endpoint http://localhost:8080/v1/chat/completions -m your-model -tl French
| 参数 | 说明 | 默认值 |
|---|---|---|
-i, --input | 输入文件路径 | 必填 |
-o, --output | 输出文件路径 | 自动生成:{文件名} ({目标语言}).{扩展名} |
-sl, --source_lang | 源语言 | English |
-tl, --target_lang | 目标语言 | Chinese |
-m, --model | 模型名称 | qwen3:14b |
--provider | 指定服务商,可选值为 ollama/openrouter/openai/gemini/mistral/deepseek/poe/nim | ollama |
--parallel | 同时并发翻译的分片数量(仅云端服务商生效;Ollama 固定为 1) | 1 |
--text-cleanup | 对OCR结果或排版错误进行文本规整处理 | 禁用 |
--refine | 二次校验翻译,针对文学类译文进行润色优化 | 禁用 |
--tts | 基于 Edge-TTS 生成音频文件 | 禁用 |
包含 TTS 语音、语速、格式等全部参数的完整说明请参考 docs/CLI.md。
将 .env.example 复制为 .env 并按需修改配置项:
# 服务商配置
LLM_PROVIDER=ollama
# Ollama 配置
API_ENDPOINT=http://localhost:11434/api/generate
DEFAULT_MODEL=qwen3:14b
# 云端服务商 API 密钥(使用云端服务时填写)
OPENROUTER_API_KEY=sk-or-v1-...
OPENAI_API_KEY=sk-...
GEMINI_API_KEY=...
MISTRAL_API_KEY=...
DEEPSEEK_API_KEY=...
POE_API_KEY=...
NIM_API_KEY=...
# 性能配置
REQUEST_TIMEOUT=900
MAX_TOKENS_PER_CHUNK=450 # 基于 Token 的分片规则(默认 450 个 Token)
PARALLEL_TRANSLATIONS=1 # 并发翻译分片数(仅云端服务商生效;Ollama 固定为 1)
[!IMPORTANT] 想要提升云端服务商的翻译速度?将
PARALLEL_TRANSLATIONS(或命令行参数--parallel N,或Web UI中的「并发请求数」)设置为大于1的值,即可同时翻译多个分片。本地服务商(如Ollama)会忽略该配置,因为单实例模式下请求天然串行。调大并发数可显著提升翻译速度,但请注意不要超过对应服务商的请求速率限制。
[!NOTE] 需要使用多个API密钥?所有
*_API_KEY变量都支持用英文逗号分隔多个密钥(例如GEMINI_API_KEY=key1,key2,key3)。当单个密钥触发速率限制时,系统会自动轮询切换其他密钥,适合串联多个免费额度账号使用,详情可参考 docs/API_KEY_ROTATION.md。长耗时翻译任务?可以配置推送通知,当翻译完成时通过 ntfy、***、Slack、gotify 或任意HTTP端点向你的手机推送提醒。只需在
.env中设置NOTIFY_WEBHOOK_URL即可,详情参考 docs/NOTIFICATIONS.md。
docker build -t translatebook .
docker run -p 5000:5000 -v $(pwd)/translated_files:/app/translated_files translatebook
更多Docker相关配置说明请参考 docs/DOCKER.md。
单台服务端对应一个共享工作空间,无需用户账号——所有指向该服务端地址的浏览器都会看到完全相同的状态:运行中任务的进度面板、已暂停/中断的翻译任务、历史翻译记录,以及translated_files/目录下的全部文件都是跨设备实时共享的,其他设备打开页面后1-2秒内即可同步最新状态。部分通用偏好设置(源/目标语言、TTS配置、文本清理开关、双语模式、纯文本模式、自定义翻译指令)也会自动同步:页面加载时以服务端保存的配置为准,后续最后一次修改的配置会覆盖全局状态,已打开的标签页刷新后即可获取最新配置。
有两项设置仅保存在本地设备中,不会跨设备同步:如果你在当前浏览器中排队了多个待翻译文件,其他设备仅能看到当前正在翻译的任务,看不到剩余排队任务(排队队列仅保存在创建它的浏览器本地);另外Web UI的显示语言也是按浏览器独立设置的。而服务商、模型、API密钥、接口端点这类敏感配置永远不会同步,始终以服务端的.env文件中的配置为准。
| 指南文档 | 内容说明 |
|---|---|
| docs/PROVIDERS.md | 服务商详细配置教程(Ollama、LM Studio、OpenRouter、OpenAI、Gemini) |
| docs/API_KEY_ROTATION.md | 同一服务商使用多API密钥,触发速率限制时自动故障转移 |
| docs/NOTIFICATIONS.md | 配置翻译完成的Webhook通知(支持ntfy、gotify、***、Slack、自定义接口) |
| docs/GLOSSARY.md | 强制全书术语统一翻译(支持Web UI和CLI,可通过NER自动提取术语) |
| docs/STYLE_EXTRACTION.md | 从样本书籍中提取可复用的翻译风格预设,应用到所有翻译片段(Web UI功能) |
| docs/CLI.md | 命令行工具完整参考手册 |
| docs/TROUBLESHOOTING.md | 常见问题解决方案 |
| docs/DOCKER.md | Docker 部署完整指南 |
如果 TBL 为你节省了时间,你可以在 *** 上支持该项目的开发工作:
Thank you · 谢谢 · ありがとう · 감사합니다 · धन्यवाद · Спасибо · ขอบคุณ · Ευχαριστώ · شكرًا
开源许可证: AGPL-3.0
来自真实用户的反馈,见证轩辕镜像的优质服务