WuPage is a browser translation extension for Edge, Chrome and Firefox that translates web pages, PDFs, images and video subtitles, with bilingual comparison and selection lookup.
- v1.21.0
- Published at
- 10h ago
- 671
- Stars
- 3,190
- Download
- Synced at
- 6m ago
Latest release
v1.21.0Nov 13, 2026, 07:58 AMREADME
Project Overview
When you need to translate a foreign-language web page, a PDF handout, or video subtitles in one pass, WuPage offers a way to do it inside the browser: body text, images, PDFs and subtitles all produce translations on the original page without copying anything to another site. It is built on Manifest V3 and installs into Edge, Chrome and Firefox; translation can use online services or run offline with Bergamot. Settings, cache and statistics stay in the current browser, and images, video frames and PDF files are never uploaded to translation services.
| Item | Value |
|---|---|
| Hosts | Microsoft Edge, Google Chrome, Firefox |
| Extension manifest | Manifest V3 |
| Current version | 1.9.0 |
| License | GPL-3.0-only |
One extension covers web pages, PDFs, images and video subtitles.
Supported Hosts
- Microsoft Edge: installs from the store or by loading an extracted folder
- Google Chrome: shares the Chromium build with Edge, load
wupage-<version>-chrome.zipmanually - Firefox: requires Firefox 154 or later, and the release ZIP is unsigned for testing
- Chromium browsers: can install
wupage-<version>-chromium.crxsigned with a fixed key, extension IDfgeedjpifhmkdehbgdmngbehdfcflblc
Key Features
- Full page translation: translates body text, dynamically loaded content and embedded frames, with one-click restore
- Paragraph translation: on desktop hold
Ctrland click a paragraph; on touch devices choose "select paragraph", click again to restore - Bilingual display: replace mode, original-color comparison (default) and two-color comparison, switchable at any time
- Selection lookup: look up a word or translate selected text, and translate text in input fields and replace it in one click
- Video subtitles: click the "translate" button on the player to translate existing subtitles, with SRT / VTT import and bilingual display
- Paused-frame translation: recognizes and translates text in a paused video frame, requiring video subtitles, image translation and the OCR model
- Image translation: on-device OCR shows the translation in place, and the image never leaves the device
- PDF reading and export: opens a PDF and translates around the current page, with editable translations and image or searchable export
- Translation exclusions: keeps chosen areas in the original language by site and CSS selector
- Settings backup: exports a
.tomlfile and imports it after edits
Install and Enable
- Edge: click "Get" in the extension store, then pin it to the toolbar
- Chrome or Edge manual install: download
wupage-<version>-chrome.ziporwupage-<version>-edge.zip, extract it, openchrome://extensions, enable developer mode and choose "Load unpacked" - Firefox: install from Firefox Add-ons, or load the ZIP temporarily in
about:debugging - Refresh the pages already open, then click the toolbar icon to open the popup
- Choose a service under "Settings → Translation services", save it, then select it in the popup
- Install the OCR model for image or frame translation, and download language models for offline translation
Permissions and Scope
- Page access: the
<all_urls>host permission reads text to translate, and the original can be restored afterwards - Background and offscreen:
storagekeeps settings and cache, whileoffscreenhandles OCR and PDF work - Shortcut:
Alt+Shift+Ytriggers full page translation by default and can be changed or disabled in settings - Data boundary: online services receive only the text and credentials they need; images, video frames and PDF files are not uploaded
- On-device recognition: OCR runs inside the
ocr-sandbox.htmlsandbox using PaddleOCR JS 0.4.2 andonnxruntime-web1.30.0 - Backup file:
.tomlexports omit keys by default, and files over 5 MiB or malformed ones are rejected
Notes
- Free services are fragile: preset Microsoft, Google and other services may rate-limit or change their APIs, and failures are not rerouted automatically, so retry or switch manually
- Model size: a local translation model takes about 35–55 MB per language direction, and non-English pairs may go through English
- PDF text layer: scanned PDFs have no text layer and cannot be translated directly
- Font install: searchable PDF export needs the full Noto font package, and the import checks file size and SHA-256
- Subtitle prefetch: subtitles are translated sentence by sentence with about 45 seconds prefetched, and sites that only expose on-screen captions cannot be prefetched