news 2026/9/19 3:40:58

BabelDOC:免费开源的PDF翻译工具,一条命令拿到双语对照版

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
BabelDOC:免费开源的PDF翻译工具,一条命令拿到双语对照版

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"可能翻出不一致的词。建一个带sourcetargettgt_lng三列的CSV(格式可参考术语表示例),翻译时加--glossary-files my_glossary.csv。含术语的句子会被注入提示词并要求模型遵循;文档自身的高频术语还可以自动抽取出来。

进阶调优与高频问题:兼容性、扫描件、离线环境

最实用的三个进阶点:

  1. 阅读器兼容性:个别PDF阅读器打不开输出文件时,加--enhance-compatibility,它等价于同时开启跳过PDF清理、双语版译文在前、禁用富文本翻译三个选项。
  2. 扫描件处理:白底黑字的扫描PDF可开--ocr-workaround,会在原文下方垫白色色块再叠译文;用--auto-enable-ocr-workaround则检测到扫描文档后自动启用。
  3. 离线环境:联网机器执行--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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 3:40:18

iOS 18.4 + Xcode 27.1 的 iPhone Duo 架构演进与 SwiftUI 自适应布局实战

1. 项目概述:这不是“双屏iPhone”,而是开发者必须直面的系统级分形演进“iPhone Duo”这个称呼在中文开发者社区里火得有点突然,但翻遍苹果官网、WWDC视频和Xcode 27.1正式版发布日志,你根本找不到这个词。它不是一款新硬件&…

作者头像 李华
网站建设 2026/9/19 3:39:22

CS3000报警PDF结构化解析实战:从乱码到可对接SCADA的报警流

简介:本资源是横河CENTUM-CS3000分布式控制系统(DCS)的官方级报警信息详解文档,面向工业自动化领域的现场工程师、DCS运维人员及系统集成技术人员,解决报警识别难、分类混乱、处置依据缺失等实际问题。文档以PDF格式单…

作者头像 李华
网站建设 2026/9/19 3:39:02

AI Agent 安全沙箱:基于 E2B 与阿里云计算巢的自建实践

我不止一次被问到同一个问题:AI Agent 写出来的代码,到底敢不敢让它直接跑?尤其当 Agent 开始动文件、起进程、连数据库的时候,一个隔离沙箱不是增强项,而是刚需。E2B 就是专门解决这个问题的沙箱运行时,可…

作者头像 李华
网站建设 2026/9/19 3:38:28

STM32H743多通道ADC+DMA配置实战:采样周期与缓冲区顺序全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/19 3:36:20

现代命令行效率四件套:ripgrep、fd、fzf、bat实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华