Plugins / Reading & PDFs

Zotero PDF2zh

by guaguastandup · github.com/guaguastandup/zotero-pdf2zh

Translates entire PDFs with PDFMathTranslate, keeping equations and layout intact, and attaches bilingual side-by-side or translated-only copies to the item.

View source
Downloads a .xpi file (0.1 MB). In Zotero, open Tools → Plugins and install it from the file.
StarsPeople who starred the repository on GitHub: a rough measure of interest.
6,881
DownloadsAll-time downloads of its release files from GitHub. Installs from elsewhere aren't counted.
605,775
ContributorsPeople who have committed code to the repository.
17
LicenceThe licence the code is published under, as GitHub reports it.
AGPL-3.0
B
Atlas gradeUse with care
because a zotero:// link (a web page can open one) can make it install add-ons without asking you (from zotero-plugin-toolkit), and 1 more finding
Applies to v4.1.7, released 23 Aug 2026Code checked · tested installed in Zotero 10.0.3 on 27 Sep 2026
Another plugin uses the same ID4 other plugins share this add-on ID. Zotero can only install one of them.
What we found in the codeSets the gradeThe worst finding in these three areas sets the grade.
Code transparencyReadable code, uploaded by the project's automated GitHub buildThe release file was uploaded by the project's automated GitHub build. We haven't yet rebuilt it from the source to compare.LowLow concern: normal for plugins that do this job. Listed so you know.
Updates
Updates come from this project's GitHub repositoryThe update address offers this version
Where your data goesOnly contacts services we could identify11 addresses in 3 groups.LowLow concern: normal for plugins that do this job. Listed so you know.
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 (1)
pdf2zh server (the translation service it's set up with)
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.
Powerful capabilitiesA zotero:// link (a web page can open one) can make it install add-ons without asking you, and 2 moreMediumMedium concern: worth reading before you install. One medium finding makes the grade B.
A zotero:// link (a web page can open one) can make it install add-ons without asking you (from zotero-plugin-toolkit)mediumMedium concern: worth reading before you install.A zotero:// link can make it run code if you approve a prompt (from zotero-plugin-toolkit)mediumMedium concern: worth reading before you install.Works with files on your computerlowLow concern.
Where we found it
A zotero:// link (a web page can open one) can make it install add-o…content/scripts/pdf2zh.js · line 135

zotero://plugin

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

zotero://ztoolkit-debug

Services.io.getProtocolHandler("zotero").wrappedJSObject._extensions["zotero://ztoolkit-debug"] = debugBridgeExtension;
Before you installShown, not gradedFacts to help you decide. They don't change the grade.
Works withZotero 7, 8, 9, 10 · not 11 betaUpdates automatically
Zotero 7 ✓ worksZotero 8 ✓ worksZotero 9 ✓ worksZotero 10 ✓ worksZotero 11 beta ✗ doesn't work
What you'll needAn API key for some featuresDetected automatically from its code
No further detail for this area yet.
MaintenanceActive · last release 23 Aug 202617 contributors
No further detail for this area yet.
LanguagesDocumentation in ChineseInterface: 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

Written by AI from the README

Translates entire PDFs with PDFMathTranslate, keeping equations and layout intact, and attaches bilingual side-by-side or translated-only copies to the item. Runs through a local Python server with the LLM or translation service you choose.

Translating selections doesn't work for whole papers, and general translators wreck equations and layout. This produces a readable translated paper, mostly into Chinese.

What you'll need

Detected automatically
  • An API key for some featuresWorks without one: siliconflowfree (the default for pdf2zh_next), plus Bing and Google machine translation. Needs a key (OpenAI, DeepSeek, SiliconFlow and Zhipu): Paid or other LLM translation services (OpenAI, DeepSeek, Zhipu, SiliconFlow paid models and similar) need your own API key and URL.
  • Or: a model on your own computerIt can use a local model such as Ollama

Where your data goes

We found: only contacts services we could identify. 11 addresses in 3 groups.

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 (1)
pdf2zh server (the translation service it's set up with)
On your computer (2)
127.0.0.1named in its codelocalhostnamed in its code

Forks and alternatives

4 other plugins use the same ID as this one. Every Zotero plugin carries an ID, a name tag Zotero uses to tell plugins apart. These 5 plugins carry the same one, because people copied Zotero PDF2zh to make their own versions and kept its ID.Show what this means
  • You can only have one. Zotero sees them as the same plugin.
  • Installing another replaces it. If you install one of the others, it takes this one's place.
  • Check what you install. Several share this plugin's name, so make sure the file comes from the one you meant.
Zotero PDF2zh · this pluginguaguastandup/zotero-pdf2zhBUse with care605,77523 Aug 2026
See all 5 and how they differ →

6 listed forks.

Plugins for the same job
  • NoteroReading & PDFs · Files, sync & backupA+Recommended, tested in Zotero
  • Bionic for ZoteroReading & PDFsA+Recommended, tested in Zotero
  • ZotLitReading & PDFs · Citing & writingA+Recommended, tested in Zotero
  • Zotero Focused ModeReading & PDFsA+Recommended, tested in Zotero

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
Install Zotero PDF2zh
BUse with care
Before you install: A zotero:// link (a web page can open one) can make it install add-ons without asking you (from zotero-plugin-toolkit), and 1 more finding.Read the finding
Compare with similar plugins