BabelDOC:免费开源的PDF翻译工具,一条命令拿到双语对照版
【免费下载链接】BabelDOCYet Another Document Translator项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC
BabelDOC是一个开源的PDF翻译工具。它把PDF文本交给大语言模型翻译,再通过重排版把译文放回原来的版面位置,公式、图片、栏宽都保持原样,一次生成双语对照版和纯译文版两种PDF。
读英文论文的老痛点:两个窗口来回切,排版还散了
如果你翻译过英文论文,大概被这样折磨过:把文字复制到在线翻译网站,公式和排版全部丢失;原文和译文两个窗口来回切换,根本读不进去;导成Word处理,版式又更乱。
BabelDOC的做法不同:先把PDF解析成中间结构(文本块、公式、字体样式都记录下来),交给LLM翻译,再把译文按原始版面重新排进新的PDF。效果是原文和译文并排出现在同一页上,公式留在原处。
核心能力速览:双语对照、公式保留、术语库
BabelDOC主要做好四件事:
- 双语对照排版:默认输出两种PDF——双语对照版(原文译文并排)和纯译文版,用
--no-dual或--no-mono选择要哪种。 - 公式与样式处理:自动识别文档里的数学公式和文字样式,公式不参与翻译,避免被模型改乱。
- 术语库管理:支持导入CSV术语文件,也能从文档中自动抽取高频术语,保证专业词汇前后一致。
- 多语言与扫描件:支持语言覆盖约150种,其中英文译中文测得最充分;白底黑字的扫描PDF有专门的OCR处理路径。
三步装好,翻译你的第一份PDF
前提是先安装 uv 这个Python包管理工具并配置好PATH,然后两条命令完成安装和验证:
uv tool install --python 3.12 BabelDOC # 安装 babeldoc 命令 babeldoc --help # 能输出帮助即安装成功接着是第一条真实翻译命令,需要模型名、API密钥和文件路径:
babeldoc --openai --openai-model "gpt-4o-mini" \ --openai-api-key "你的API密钥" \ --files example.pdf跑完后当前目录(或--output指定目录)会出现两个PDF:双语对照版和纯译文版。不想每次敲参数,就把它们写进配置文件,之后只需babeldoc --config config.toml --files example.pdf:
[babeldoc] lang-in = "en" # 源语言 lang-out = "zh-CN" # 目标语言 openai = true # 启用 OpenAI 兼容服务 openai-model = "gpt-4o-mini" openai-base-url = "https://api.openai.com/v1" openai-api-key = "你的API密钥" output = "./translated_files"真实场景实战:从一篇论文到一份术语库
场景一:把英文论文读成双语对照。你有一篇版面密集的英文论文,术语生僻。直接跑最小命令,或用--lang-in/--lang-out调整语言对。跑完得到双语对照PDF,原文译文并排、公式图片原位;如果希望原页和译页交替出现,加--use-alternating-pages-dual。
场景二:几百页的大文档分段翻译。大文档整份跑容易超时或占内存。在命令上加--max-pages-per-part 50,工具会按页数切块、逐块翻译、最后自动合并回一份文档;某一页出错也不会让整份任务作废。
场景三:用术语库固定专业词汇。机器翻译对"backpropagation"可能翻出不一致的词。建一个带source、target、tgt_lng三列的CSV(格式可参考术语表示例),翻译时加--glossary-files my_glossary.csv。含术语的句子会被注入提示词并要求模型遵循;文档自身的高频术语还可以自动抽取出来。
进阶调优与高频问题:兼容性、扫描件、离线环境
最实用的三个进阶点:
- 阅读器兼容性:个别PDF阅读器打不开输出文件时,加
--enhance-compatibility,它等价于同时开启跳过PDF清理、双语版译文在前、禁用富文本翻译三个选项。 - 扫描件处理:白底黑字的扫描PDF可开
--ocr-workaround,会在原文下方垫白色色块再叠译文;用--auto-enable-ocr-workaround则检测到扫描文档后自动启用。 - 离线环境:联网机器执行
--generate-offline-assets把字体和模型打包含起来,断网机器用--restore-offline-assets恢复,保证多台机器结果一致。
高频问题:支持哪些翻译服务?只支持OpenAI兼容的LLM接口——--openai-base-url可以指向OpenAI,也可以指向Ollama等本地模型(本地模型时API密钥随便填一个值即可),对Bing、Google这类传统翻译引擎没有做优化。
已知限制也要心里有数:作者与参考文献区域翻译后可能合并成一段;不支持横线和首字下沉;超大页面会被跳过。
BabelDOC 适合谁
BabelDOC是一个命令行、开源的PDF翻译工具:版式保留、模型自带、流程可嵌入。适合这样的你:
- 需要把英文论文、技术文档读成中文,且不能接受版式丢失
- 想要"原文+译文"并排对照的阅读体验
- 开发者,想把PDF翻译能力嵌入自己的程序(处理流程见实现原理文档)
- 用Ollama等本地模型做离线翻译,不想把文档发给第三方
- 断网或内网环境,需要批量、可复现地翻译文档
【免费下载链接】BabelDOCYet Another Document Translator项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考