explaingit

windingwind/zotero-pdf-translate

10,859TypeScriptAudience · researcherComplexity · 2/5Setup · easy

TLDR

Zotero plugin that adds instant translation to the PDF reader, select foreign-language text and see the translation in a sidebar without leaving the app. Supports 20+ services including Google Translate and DeepL.

Mindmap

mindmap
  root((zotero-pdf-translate))
    What it does
      Translate PDF text
      Translate metadata
      Save to annotations
    Translation services
      Google Bing free
      DeepL OpenAI paid
      20 plus options
    Use in Zotero
      Sidebar pop-up
      Annotation comments
      Standalone window
    Audience
      Researchers
      Students
      Academics
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Read academic papers in foreign languages by selecting passages and seeing translations appear instantly in the sidebar.

USE CASE 2

Automatically translate item titles and abstracts in your Zotero library so your reading list stays readable.

USE CASE 3

Save translations directly into annotation comments while reading, building bilingual notes without copy-pasting.

Tech stack

TypeScript

Getting it running

Difficulty · easy Time to first run · 5min

Standard Zotero plugin install, download .xpi, then Tools > Plugins > Install from file. Requires Zotero 7 or 8.

In plain English

Translate for Zotero (also published as Zotero PDF Translate) is a plugin for Zotero, a free tool researchers use to collect and organize academic papers. The plugin adds translation capabilities directly inside the Zotero reader, so you can translate text from PDFs, EPub files, web pages, item metadata, annotations, and notes without leaving the application. The most common use is reading a paper in a foreign language. You select a passage in the PDF, and the translation appears immediately in a small pop-up panel and in the item sidebar. You can also highlight or underline text and have the translation automatically saved into the annotation comment, which is useful for building notes while reading. A standalone translation window lets you compare output from multiple translation services side by side. For organizing your library, the plugin can translate item titles and abstracts from the right-click menu, so your reading list stays readable even when papers are in languages you do not read fluently. A dictionary mode handles single-word lookups differently from full sentences, and there is a sentence-by-sentence translation option for more controlled reading of technical content. The plugin supports over 20 translation services. Several are free and require no account, including Google Translate, Bing, Youdao, and CNKI. Paid options like DeepL, Microsoft Azure Translator, OpenAI, and others are available if you supply your own API key. The default target language is picked up from your Zotero language setting, but it can be changed in the preferences. Installation follows the standard Zotero plugin process: download the .xpi file from the releases page, open Zotero, go to Tools > Plugins, and install from file. The plugin supports Zotero 7 and 8. Chinese documentation is available alongside the English README.

Copy-paste prompts

Prompt 1
I'm reading a Chinese research paper in Zotero and want translations to appear when I highlight text. How do I install and set up zotero-pdf-translate?
Prompt 2
How do I configure zotero-pdf-translate to use DeepL instead of Google Translate?
Prompt 3
I want to translate all the titles and abstracts in my Zotero library to English. What steps do I follow in zotero-pdf-translate?
Prompt 4
How do I get zotero-pdf-translate to automatically save the translation into the annotation comment when I highlight text?
Open on GitHub → Explain another repo

← windingwind on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.