Plugins / Translation

PDF2zh Easy

by fxz729 · github.com/fxz729/zotero-pdf2zh-easy

Independent Zotero PDF2zh distribution with guided engine setup, quiet background translation and API settings. AGPL-3.0-or-later.

PDF2zh Easy has Atlas grade C (not recommended) because it downloads and runs a program we haven't reviewed yet. It works with Zotero 7–10, 11 beta. Last checked 6 Nov 2026.

View source
Downloads a .xpi file (0.3 MB). In Zotero, open Tools → Plugins and install it from the file.
In useAn estimate of how many copies of Zotero have it: Zotero downloads each new version once for every copy that has the plugin, so we count the downloads of its most-downloaded recent release. Rounded. Plugins that update from outside GitHub count low.
4
DownloadsAll-time downloads of its release files from GitHub, counting every update. Installs from elsewhere aren't counted.
6
ReleasesVersions published on GitHub. Everyone who has the plugin downloads each one again, which adds up in Downloads.
2
StarsPeople who starred the repository on GitHub: a rough measure of interest.
0
ContributorsPeople who have committed code to the repository.
1
LicenceThe licence the code is published under, as GitHub reports it.
AGPL-3.0
C
Atlas gradeNot recommended
because it downloads and runs a program we haven't reviewed yet
Applies to v0.1.1, released 3 Nov 2026Code checked · not yet tested in a live Zotero
Documentation in Chinese onlyOur summary is in English, but the plugin's own docs and support are in Chinese.
What we found in the codeSets the gradeThe worst finding in these three areas sets the grade.
Code transparencyReadable code; not yet checked against the published sourceThe developer uploaded the release file from the fxz729 account. We haven't yet checked whether this file matches the public source code.UnknownWe couldn't check this yet.
Updates
Updates come from this project's GitHub repositoryThe update address offers this version
Where your data goesContacts servers we couldn't identify: mirrors.aliyun.com and pypi.tuna.tsinghua.edu.cn20 addresses in 5 groups.MediumMedium concern: worth reading before you install. One medium finding makes the grade B.
Not identified (2)
mirrors.aliyun.compypi.tuna.tsinghua.edu.cn
AI services (8)
api.deepseek.comnamed in its codeThe address is in its code, but we didn't trace a request to it. It may be a link or unused.api.openai.comnamed in its codeThe address is in its code, but we didn't trace a request to it. It may be a link or unused.api.siliconflow.cnnamed in its codeThe address is in its code, but we didn't trace a request to it. It may be a link or unused.ark.cn-beijing.volces.comnamed in its codeThe address is in its code, but we didn't trace a request to it. It may be a link or unused.cloud.siliconflow.cnnamed in its codeThe address is in its code, but we didn't trace a request to it. It may be a link or unused.dashscope.aliyuncs.comnamed in its codeThe address is in its code, but we didn't trace a request to it. It may be a link or unused.generativelanguage.googleapis.comnamed in its codeThe address is in its code, but we didn't trace a request to it. It may be a link or unused.platform.deepseek.comnamed in its codeThe address is in its code, but we didn't trace a request to it. It may be a link or unused.
Translation (2)
BabelDOC (the AI provider it's set up with)pdf2zh-next (SiliconFlow, or the engine it's set up with)
Code hosting (6)
api.github.comgitee.comgithub.commirrors.ustc.edu.cnpypi.orgraw.githubusercontent.com
On your computer (2)
127.0.0.1named in its codeThe address is in its code, but we didn't trace a request to it. It may be a link or unused.localhostnamed in its codeThe address is in its code, but we didn't trace a request to it. It may be a link or unused.
Where we found it
mirrors.aliyun.comcontent/runtime/server/utils/package_network.py · line 16
("Aliyun", "https://mirrors.aliyun.com/pypi/simple"),
pypi.tuna.tsinghua.edu.cncontent/runtime/server/utils/package_network.py · line 15
("TUNA", "https://pypi.tuna.tsinghua.edu.cn/simple"),
api.github.comcontent/runtime/server/utils/auto_update.py · line 313
f"https://api.github.com/repos/{OWNER}/{REPO}/releases/latest",
Powerful capabilitiesDownloads and runs a program we haven't reviewed yet, and 6 moreHighHigh concern: a serious problem. One high finding makes the grade C.
High concern (1)
Downloads and runs a program we haven't reviewed yet
Medium concern (4)
A zotero:// link (a web page can open one) can make it install add-ons without asking you (from zotero-plugin-toolkit)A zotero:// link can make it run code if you approve a prompt (from zotero-plugin-toolkit)Installs and runs software packages from npm or PyPILaunches programs on your computer
Low concern (2)
Works with files on your computerRuns its own server for programs on this computer
Where we found it
Downloads and runs a program we haven't reviewed yetcontent/scripts/pdf2zhEasy.js · line 4236

We haven't yet reviewed who publishes the file or whether anything stops it changing, so it counts as a high concern until we do. Checked only against a checksum from the same place, which catches a broken download but not a swapped one.

const response = await Zotero.HTTP.request("GET", asset.url, {
A zotero:// link (a web page can open one) can make it install add-o…content/scripts/pdf2zhEasy.js · line 135

zotero://plugin. zotero-plugin-toolkit removed this link in version 6.0.0; this plugin is built with an older version

Services.io.getProtocolHandler("zotero").wrappedJSObject._extensions["zotero://plugin"] = pluginBridgeExtension;
A zotero:// link can make it run code if you approve a promptcontent/scripts/pdf2zhEasy.js · line 91

zotero://ztoolkit-debug

Services.io.getProtocolHandler("zotero").wrappedJSObject._extensions["zotero://ztoolkit-debug"] = debugBridgeExtension;
Installs and runs software packages from npm or PyPIcontent/runtime/runtime/bootstrap.py · line 201

Installs a locked set of packages

command = [str(self.uv), 'pip', 'install', '--python', str(self.python(environment)), '--index-url', 'https://pypi.org/simple', '-r', str(self.root / 'runtime' / requirements)]
Launches programs on your computercontent/scripts/pdf2zhEasy.js · line 3886

Programs it names include tar

const { Subprocess } = ChromeUtils.importESModule("resource://gre/modules/Subprocess.sys.mjs");
Before you installShown, not gradedFacts to help you decide. They don't change the grade.
Works withZotero 7, 8, 9, 10, 11 betaUpdates automatically
Zotero 7 ✓ worksZotero 8 ✓ worksZotero 9 ✓ worksZotero 10 ✓ worksZotero 11 beta ✓ works
What you'll needNothing extra detectedDetected automatically from its code
No further detail for this area yet.
MaintenanceActive · last release 3 Nov 20261 contributor
No further detail for this area yet.
LanguagesDocumentation in Chinese onlyInterface: English and Chinese
No further detail for this area yet.
We report what we found in the code. Open any area for the evidence.How we gradeReport a problem

What it does

Description coming soon. We haven't written a summary yet. The line above is the developer's own description; the developer's README is linked above.

What you'll need

Detected automatically

We haven't detected any setup requirements. That isn't the same as none: check the developer's README.

Where your data goes

We found: contacts servers we couldn't identify: mirrors.aliyun.com and pypi.tuna.tsinghua.edu.cn. 20 addresses in 5 groups.

Not identified (2)
mirrors.aliyun.compypi.tuna.tsinghua.edu.cn
AI services (8)
api.deepseek.comnamed in its codeapi.openai.comnamed in its codeapi.siliconflow.cnnamed in its codeark.cn-beijing.volces.comnamed in its codecloud.siliconflow.cnnamed in its codedashscope.aliyuncs.comnamed in its codegenerativelanguage.googleapis.comnamed in its codeplatform.deepseek.comnamed in its code
Translation (2)
BabelDOC (the AI provider it's set up with)pdf2zh-next (SiliconFlow, or the engine it's set up with)
Code hosting (6)
api.github.comgitee.comgithub.commirrors.ustc.edu.cnpypi.orgraw.githubusercontent.com
On your computer (2)
127.0.0.1named in its codelocalhostnamed in its code
Evidence · file and line
mirrors.aliyun.comcontent/runtime/server/utils/package_network.py · line 16
("Aliyun", "https://mirrors.aliyun.com/pypi/simple"),
pypi.tuna.tsinghua.edu.cncontent/runtime/server/utils/package_network.py · line 15
("TUNA", "https://pypi.tuna.tsinghua.edu.cn/simple"),
api.github.comcontent/runtime/server/utils/auto_update.py · line 313
f"https://api.github.com/repos/{OWNER}/{REPO}/releases/latest",

Forks and copies

No forks listed.

The developer's response

The developer hasn't responded. Developers can reply here, and their reply sits next to our findings.I'm the developer

Ratings and reviews

What people who use it say. This is separate from the grade, which is what the code does, and never changes it.

No ratings yet.

Write a review
Your rating of PDF2zh Easy v0.1.1

Your review is public, under the name you give, and published with the directory's data under CC BY 4.0. Links are removed. We never store your IP address: a scrambled code made from it is kept for 30 days to catch fake reviews. Every review is checked before it's published; how fake ones are spotted isn't published, so it can't be gamed.

Install PDF2zh Easy
CNot recommended
We don't recommend itIt downloads and runs a program we haven't reviewed yet.
Better-graded plugins for the same jobA+PDF TranslateA+Zotero 标题翻译A+Dual Title
Read what we found