guaguastandup/zotero-pdf2zh

PDF2zh for Zotero | Zotero PDF中文翻译插件

Zotero PDF2zh – AI‑powered PDF translation inside Zotero

What it is

  • A Zotero plug‑in (plus a small Python server) that lets you translate PDF papers directly from your Zotero library.
  • It uses the open‑source PDFMathTranslate / PDFMathTranslate‑next engines, which call LLM APIs (OpenAI, DeepSeek, SiliconFlow, etc.) to produce a Chinese translation while preserving formulas, layout and optional bilingual side‑by‑side views.

Key features

Feature What you get
Two translation back‑ends pdf2zh (older, faster, custom fonts) and pdf2zh_next (actively maintained, table/OCR support, terminology extraction).
Bilingual PDF output Generates a new PDF where the original and translated text appear either left‑right or top‑bottom.
Crop‑and‑compare mode For double‑column papers it can cut the pages in half and stitch them, making them easier to read on phones.
Batch translation Select multiple items in Zotero and translate them all at once.
Progress UI A web dashboard (http://127.0.0.1:8890) shows current task status, history and lets you download the results.
LLM service manager In‑plugin UI to add API keys/URLs for many providers (OpenAI‑compatible, DeepSeek‑V4, SiliconFlow‑free, Bing/Google, Zhipu, Aliyun DashScope, etc.) and configure rate limits (qps, poolsize).
Docker / Homebrew / Windows‑exe Multiple deployment options for the Python server, including a pre‑built Windows executable and ready‑made Docker images.
Automatic updates The plug‑in checks for new releases; the server can pull updates from GitHub or Gitee and even update its own Python packages.

How it works

  1. Install the plug‑in (.xpi) in Zotero (versions 7‑10 are supported).
  2. Run the companion server – a small Python script (server.py) that loads the translation engine and talks to the LLM API you configured. The server stays running while you translate.
  3. Configure an LLM in the plug‑in’s “LLM API configuration” panel (enter URL, API key, model name, optional *_enable_json_mode).
  4. Right‑click a PDF (or a Zotero item) → choose one of the four actions:
    • Translate PDF – creates a translated PDF.
    • Crop PDF – halves a wide paper for mobile reading.
    • Compare PDF – side‑by‑side bilingual view.
    • Crop‑compare PDF – crop then compare (for double‑column papers).
  5. Watch progress in Zotero’s status bar or the web dashboard; when finished the new PDF appears in your library.

Installation quick‑start

  • Install Python 3.12 and Zotero.
  • Install a virtual‑env manager (uv recommended, or Conda).
  • Download the server.zip release, unzip to zotero-pdf2zh/server.
  • Start the server, e.g. uv run --python 3.12 --with-requirements requirements.txt server.py (or the Conda equivalent).
  • Install the .xpi plug‑in via Zotero → Tools → Add‑ons.
  • Open the plug‑in preferences, test the “Check connection” button, add your LLM API, and you’re ready to translate.

Who it’s for

  • Researchers and students who store papers in Zotero and need Chinese translations without leaving the reference manager.
  • Anyone who wants to keep the original PDF layout (formulas, tables) while getting a readable bilingual version.

Limitations / notes

  • The server must stay running; closing the terminal stops translation.
  • Free services (e.g., SiliconFlow‑free) may miss some passages; for higher quality use a paid LLM key.
  • Windows users should avoid placing the project on the system drive and may need to run the terminal as administrator.
  • The project is undergoing a major rewrite (as of Aug 2026); current versions are stable but future contributions are paused until the new release.

TL;DR: Zotero PDF2zh is a real, open‑source Zotero plug‑in plus a lightweight Python server that translates PDFs to Chinese using LLM APIs, preserving formatting and offering bilingual PDFs, batch processing, and a web UI for progress monitoring. It supports multiple deployment methods and a variety of LLM providers, making AI‑assisted academic reading inside Zotero practical.

Related

  • Project
  • Project
  • Project
  • Project
  • Project