网上很难找到没有限制的优质批量PDF翻译, 而这个项目解决了这个限制。支持PDF 批量翻译,翻译后的PDF格式基本不变。支持导出PDF, TXT和Docx。优化并精简了来自于QPromise 的 EasyTrans。使用最新的PyMuPDF库!
翻译的质量对比看 input_file 和 output_file 文件夹中的论文
-
支持批量翻译
-
优化了换行符造成的翻译质量的问题
-
优化了百度翻译API (免费版), 可以稳定进行大量的翻译
-
可视化翻译进度, 实时预览翻译内容
-
翻译后可导出PDF, TXT, Word
-
精简了环境安装包, 可自行尝试最新版PyMuPDF. 环境需求:
- PyMuPDF (适配 new version 1.20.2)
- python-docx
- tqdm
- PyExecJS
- requests
环境为mac. linux同理, win可以尝试
如何安装conda 自行google/baidu, 非必须
(可选) conda create --name trans python=3.10 -y
# 创建trans环境
(可选) conda activate trans
# 激活环境
git clone https://github.com/Ding-Kyoma/EasyTrans-mac.git
# 下载代码
cd EasyTrans-mac
# 进入文件夹
(m1 mac)brew install mupdf swig freetype
(m1 mac)pip install https://github.com/pymupdf/PyMuPDF/archive/master.tar.gz
pip install -r requirements.txt
# 安装环境
- 在 https://api.fanyi.baidu.com 注册 通用翻译, 开通高级版账号
- 高级版优点是速度快, 每个月免费的额度有100w字数限制
- 在管理控制台, 总览 的最下面找到自己的 APP ID 和 密钥, 修改
account.py
的 appid 和secretKey. 支持添加多个账号来获得更高的请求速度以及更多的字数. - 若想使用其他翻译的API, 在
main.py
中更改from translate_func import baidu_translate as net_translate
- 有道翻译
from translate_func import youdao_translate as net_translate
- 谷歌翻译
from translate_func import google_translate as net_translate
- 有道翻译
- 将需要翻译的PDF文件放入input_file文件夹
- 运行
python main.py
- output_file 文件夹中查看结果
- 若不想让翻译文件包含图片,或翻译内容和原文重叠, 在
main.py
中将第28行改为save_img = Flase
- 若想导出word, 在
main.py
中将第29行改为save_docx = True
有问题可以提交issue~
- 在
account.py
更改百度api账号 - 添加原始文件的txt输出,方便一些手动处理一些奇怪换行的pdf
- 移除特定版本包
- 百度API规则更新,标准版不在提供无限量翻译了,请注册高级版API
- 更新支持
PyMuPDF==1.20.2
- 更新支持
PyMuPDF==1.20.1
- 添加 m1 mac的支持
- 添加txt输出, 针对某些PDF内容换段错误的文件
- 优化长段的分割算法
- 调用多账号逻辑优化
- 翻译完成的文件统一放入 output_file 文件夹
- 主程序名称改为 main.py