Plugins / Reading & PDFs

Translate for Zotero

by windingwind · github.com/windingwind/zotero-pdf-translate

Translates text as you select it in the PDF, EPUB or web reader, plus titles, abstracts, annotations and notes, using 20+ services (Google, DeepL, LLMs and more) and a dictionary for single words.

View source
Downloads a .xpi file (0.8 MB). In Zotero, open Tools → Plugins and install it from the file.
StarsPeople who starred the repository on GitHub: a rough measure of interest.
11,908
DownloadsAll-time downloads of its release files from GitHub. Installs from elsewhere aren't counted.
10.9M
ContributorsPeople who have committed code to the repository.
55
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 2 more findings
Applies to v2.4.7, released 18 Aug 2026Code checked · tested installed in Zotero 10.0.3 on 27 Sep 2026
Another plugin uses the same ID13 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 identify44 addresses in 4 groups.LowLow concern: normal for plugins that do this job. Listed so you know.
AI services (4)
api.anthropic.comapi.openai.comdashscope.aliyuncs.comgenerativelanguage.googleapis.com
Translation (37)
api-free.deepl.comapi.cognitive.microsofttranslator.comapi.deepl-pro.comapi.deepl.comapi.dictionaryapi.devapi.fanyi.baidu.comapi.interpreter.caiyunai.comapi.microsofttranslator.comapi.mymemory.translated.netapi.openl.clubapis.niutrans.comaudio.dict.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.capi.dict.cncn.bing.comdict.cndict.youdao.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.dictionary.cambridge.orgedge.microsoft.comejje.weblio.jpfanyi.youdao.comgramota.ruifanyi.iciba.comitrans.xfyun.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.mt.aliyuncs.comniutrans.comntrans.xfyun.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.openapi.youdao.comtmt.tencentcloudapi.comtrans.neu.edu.cntranslate.google.comtranslate.googleapis.comtranslate.volcengine.comtranslate.volcengineapi.comtransmart.qq.comwww.collinsdictionary.comwww.youdao.comwww2.deepl.com
Scholarly services (1)
dict.cnki.net
On your computer (2)
127.0.0.1localhost
Where we found it
api.anthropic.comprefs.js · line 87
pref("extensions.zotero.ZoteroPDFTranslate.claude.endPoint", "https://api.anthropic.com/v1/messages");
api.openai.comprefs.js · line 53
pref("extensions.zotero.ZoteroPDFTranslate.chatGPT.endPoint", "https://api.openai.com/v1/chat/completions");
dashscope.aliyuncs.comchrome/content/scripts/zoteropdftranslate.js · line 15591
const apiURL = getPref("qwenmt.endPoint") || "https://dashscope.aliyuncs.com/compatible-mode";
Powerful capabilitiesA zotero:// link (a web page can open one) can make it install add-ons without asking you, and 3 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.Sends your text or keys unencrypted (http://) to api.fanyi.baidu.com, api.interpreter.caiyunai.com and 3 moremediumMedium concern: worth reading before you install.Stores API keys or passwordslowLow concern.
Where we found it
A zotero:// link (a web page can open one) can make it install add-o…chrome/content/scripts/zoteropdftranslate.js · line 463

zotero://plugin

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

zotero://ztoolkit-debug

Services.io.getProtocolHandler("zotero").wrappedJSObject._extensions["zotero://ztoolkit-debug"] = debugBridgeExtension;
Sends your text or keys unencrypted (http://) to api.fanyi.baidu.com…chrome/content/scripts/zoteropdftranslate.js · line 9364

Anyone on the network in between can read it

`http://api.fanyi.baidu.com/api/trans/vip/translate?q=${encodeURIComponent(
Before you installShown, not gradedFacts to help you decide. They don't change the grade.
Works withZotero 8, 9, 10 · not 11 betaUpdates automatically
Zotero 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 18 Aug 202655 contributors
No further detail for this area yet.
LanguagesDocumentation in EnglishInterface: English, Italian 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 text as you select it in the PDF, EPUB or web reader, plus titles, abstracts, annotations and notes, using 20+ services (Google, DeepL, LLMs and more) and a dictionary for single words.

Reading papers in a second language means constant copy-paste into a translation site. This puts the translation next to the text and can save it with your annotations.

What you'll need

Detected automatically
  • An API key for some featuresWorks without one: Google Translate (the default) and other free services such as CNKI, Bing, Youdao. Needs a key (DeepL, Microsoft Translator, OpenAI, Google Gemini, Baidu, Tencent and Aliyun): Microsoft, DeepL, Baidu, Aliyun, Tencent, Xftrans, GPT, Gemini, Qwen-MT and similar services need a key or secret.

Where your data goes

We found: only contacts services we could identify. 44 addresses in 4 groups.

AI services (4)
api.anthropic.comapi.openai.comdashscope.aliyuncs.comgenerativelanguage.googleapis.com
Translation (37)
api-free.deepl.comapi.cognitive.microsofttranslator.comapi.deepl-pro.comapi.deepl.comapi.dictionaryapi.devapi.fanyi.baidu.comapi.interpreter.caiyunai.comapi.microsofttranslator.comapi.mymemory.translated.netapi.openl.clubapis.niutrans.comaudio.dict.cnnamed in its codecapi.dict.cncn.bing.comdict.cndict.youdao.comnamed in its codedictionary.cambridge.orgedge.microsoft.comejje.weblio.jpfanyi.youdao.comgramota.ruifanyi.iciba.comitrans.xfyun.cnnamed in its codemt.aliyuncs.comniutrans.comntrans.xfyun.cnnamed in its codeopenapi.youdao.comtmt.tencentcloudapi.comtrans.neu.edu.cntranslate.google.comtranslate.googleapis.comtranslate.volcengine.comtranslate.volcengineapi.comtransmart.qq.comwww.collinsdictionary.comwww.youdao.comwww2.deepl.com
Scholarly services (1)
dict.cnki.net
On your computer (2)
127.0.0.1localhost
Evidence · file and line
api.anthropic.comprefs.js · line 87
pref("extensions.zotero.ZoteroPDFTranslate.claude.endPoint", "https://api.anthropic.com/v1/messages");
api.openai.comprefs.js · line 53
pref("extensions.zotero.ZoteroPDFTranslate.chatGPT.endPoint", "https://api.openai.com/v1/chat/completions");
dashscope.aliyuncs.comchrome/content/scripts/zoteropdftranslate.js · line 15591
const apiURL = getPref("qwenmt.endPoint") || "https://dashscope.aliyuncs.com/compatible-mode";

Forks and alternatives

13 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 14 plugins carry the same one, because people copied Translate for Zotero 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.
Translate for Zotero · this pluginwindingwind/zotero-pdf-translateBUse with care10.9M18 Aug 2026
Zotero PDF TranslateCopy · Jinshijiming/zotero-pdf-translate-z6CNot recommended1031 Aug 2025
Translate for ZoteroCopy · nian1147/zotero-pdf-translate-medicalBUse with care619 Sep 2026
Translate for ZoteroCopy · helingfeng-hub/zotero-pdf-translate-thinking-levelBUse with care315 Sep 2026
See all 14 and how they differ →

14 listed forks.

Plugins for the same job
  • NoteroReading & PDFs · Files, sync & backupA+Recommended, tested in Zotero
  • Google Scholar Citation CountCiting & writing · Import & metadataA+Recommended, tested in Zotero
  • Bionic for ZoteroReading & PDFsA+Recommended, tested in Zotero
  • ZotLitReading & PDFs · Citing & writingA+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 Translate for Zotero
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 2 more findings.Read the finding
Compare with similar plugins