做科研,有一种场景应该很多人都很熟悉:
刚下载一篇几十页的英文论文,打开 PDF,左边是正文,右边开一个翻译软件;遇到公式、图表和双栏排版,还要不停复制、切换窗口。
真正麻烦的往往不是“某一句英文看不懂”,而是这种来回切换严重打断阅读节奏,并且不利于整体掌握研究全貌,并且网路上目前的翻译工具大多是机器翻译,某些科研名词翻译往往不准确。
如果能直接在 Zotero 中右键一篇英文论文,然后让目前最前沿的Ai模型进行翻译,最后得到一份保留原论文排版、原文与中文对照的 PDF,公式与图表都不会乱码的双语论文,阅读体验会舒服很多。
这就是本文要介绍的工具——Zotero PDF2ZH。
它把 PDF2ZH/PDF2ZH Next 翻译引擎接入 Zotero,可以直接从文献库中发起翻译,并调用 Bing、Google、SiliconFlow、DeepSeek 等翻译服务。当前新版 pdf2zh_next 还支持术语表、表格翻译和 OCR 兼容等功能。
电脑上首先需要有Zotero软件,如果没有,可以前往官网进行免费下载:推荐安装Zotero7或者Zotero8,不要安装最新版本。
Zotero | Your personal research assistant
https://www.zotero.org/
1、首先下载 PDF2ZH 的 Zotero 插件。
可以从 Zotero 中文社区插件商店获取,也可以直接从 PDF2ZH 项目的发布页面下载最新版 .xpi 文件。
Zotero 中文社区丨PDF2ZH下载
https://zotero-chinese.com/plugins/#search=PDF2ZH
PDF2ZH 官方当前同时支持 Zotero 7 和 Zotero 8。
2、安装PDF2ZH 插件到 Zotero 中。

3、配置PDF2ZH。
👉编辑 👉设置 👉PDF2ZH

PDF2ZH 支持多种翻译服务。
如果只是想先体验,可以使用插件支持的免费服务,例如Bing、Google 或 siliconflowfree。需要注意,免费服务可能受到限流或者出现漏翻等情况。PDF2ZH 官方也建议,对翻译质量要求较高时使用其他 LLM 服务。
我这里使用的是 DeepSeek API。
原因很简单:科研论文这种长文本更依赖上下文和术语一致性,LLM 翻译通常比传统逐句机器翻译更加自然。
以DeepSeek为例,如果没有,前往
DeepSeek开放平台
https://platform.deepseek.com/usage
进行创建,充值。
在设置界面,下滑到LLM API配置管理,按如下方法配置,复制刚才的api密钥到LLM API KEY,点击“保存”。然后点击“激活”

Responses API 目前仅支持deepseek-v4-flash模型,这里选择deepseek-chat会自动调用v4 flash模型,目前价格还是比较便宜的,10块钱大概可以翻译近2000页文献。
PDF2ZH 的后台程序是 Python 程序,所以需要 Python 环境,要安装Python、以及环境管理工具uv/conda,做数值计算的同志们对此应不陌生,可以跳过第一节直接看第二节,但是面向小白,这里提供python以及使用uv/conda创建虚拟环境的详细说明,当然如果你后续的研究工作不跟代码打交道,你可以看第三节,不创建虚拟环境直接运行exe文件。
1、安装python以及uv/conda
打开命令行工具(后续步骤都在命令行中执行,以windows系统为例,同时提供mac系统的安装教程):
- Windows
:按 Win + R→ 输入cmd→ 回车(建议以管理员身份运行) - macOS
:按 Cmd + 空格→ 输入"终端" → 回车 - Linux
: Ctrl + Alt + T
Python:下载链接,建议安装 3.12 版本,根据提示安装完成之后,按Win + R→输入cmd→回车(建议以管理员身份运行),打开cmd,输入“python”显示如下即安装成功。

②安装uv/conda
由于该插件后续会自己配置环境,为了防止本地的环境被污染,或者干扰插件的运行,一个环境管理工具是必不可少的,这里对于不从事数值计算的小伙伴推荐安装uv:(不同系统复制不同的代码执行,windows系统为第4行)。
# macOS/Linuxwget -qO- https://astral.sh/uv/install.sh | sh# Windows(在PowerShell中执行)powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# MacOS/Linuxexport PATH="$HOME/.local/bin:$PATH"# Windows PowerShell$env:Path = "$env:USERPROFILE\.local\bin;$env:Path"
安装后执行 uv --version,能看到版本号即成功。

2、安装插件的后台程序
在D盘(C盘也可以但是必须建立在用户文件夹下)新建一个文件夹,命名为:zotero-pdf2zh。
下载server.zip,这里提供两种方法
①终端下载
# 1. 进入zotero-pdf2zh文件夹cd D:zotero-pdf2zh# 2. 下载并解压server文件夹wget https://raw.githubusercontent.com/guaguastandup/zotero-pdf2zh/refs/heads/main/server.zipunzip server.zip②GitHub下载并且手动解压
Server.zip下载
https://github.com/guaguastandup/zotero-pdf2zh/blob/main/server.zip
确保目录结构为:
zotero-pdf2zh/└── server/├── server.py├── ...└── requirements.txt启动服务 # 1. 进入zotero-pdf2zh文件夹cd D:zotero-pdf2zh# 2. uv用户(推荐)uv run --python 3.12 --with-requirements requirements.txt server.py# 1. conda用户 创建环境(仅首次需要)conda create -n zotero-pdf2zh-server python=3.12 -y# 2. 激活环境conda activate zotero-pdf2zh-server# 3. 安装依赖(仅首次需要)pip install -r requirements.txt# 4. 启动服务python server.py --env_tool=conda每次启用比较麻烦,可以把该教程发给codex,让codex写一个Windows 命令脚本,设置快捷方式到桌面即可,这样后续启动只需点击图标。
安装步骤:
下载exe包:访问 pdf2zh_next Release 页面,下载
pdf2zh-v2.x.x-BabelDOC-v0.x.x-win64.zip(选择with-assets版本)解压文件:将下载的zip文件解压到
server目录下,
运行服务:(把XX替换为你实际下载的版本) python server.py --enable_winexe=True --winexe_path='./pdf2zh-v2.x.x-BabelDOC-v0.x.x-win64/pdf2zh/pdf2zh.exe'

显示:仅pdf2zh_next 虚拟环境存在是正常的,因为我们前面3、配置pdf2zh插件中选择的引擎是pdf2zh_next,显示:发现旧的配置文件是因为我之前使用过。显示:WARNING是因为该插件后台调用了Python Web 服务,是否有上述该提示都是正常的。
打开zotero主界面,选中一篇英文文献,右键,点击PDF2zh,选择一个翻译模式,我这里选择双语对照。(注意,条目下的pdf需要进行OCR处理,非扫描件,否则翻译效果比较一般,大部分从期刊下载的文献是满足要求的)

此时打开后台终端,可以看到具体的进度:

等待一段时间后打开zotero条目,发现已经新建了一个文件“deepseek-compare“(文件名取决于翻译的api)打开该文件:

PDF 翻译工具有很多,但对于已经把 Zotero 当作文献库的人来说,PDF2ZH 真正方便的地方并不是“它又提供了一种翻译方式”。
而是翻译这件事终于可以直接嵌进原来的文献管理流程。
下载论文之后不需要上传到其他网站,不需要在几个软件之间来回切换,也不需要把翻译文件重新拖回文献库。整个流程基本都可以留在 Zotero 里面完成。

夜雨聆风