Offline screen translator for Japanese retro games
Project description
Interpreter
Offline screen translator for Japanese retro games. Captures text from any window, performs OCR, translates to English, and displays subtitles in a floating overlay.
Features
- Fully offline - No cloud APIs, no internet required after setup
- Free - No API costs or subscriptions
- Private - Text never leaves your machine
- Optimized for retro games - Uses MeikiOCR, trained specifically on Japanese game text
- Two overlay modes - Banner (subtitle bar) or inplace (text over game)
- Translation caching - Fuzzy matching avoids re-translating similar text
- Multi-display support - Overlay appears on the same display as the game
Requirements
- Windows 10 version 1903+, macOS, or Linux (X11/XWayland/Wayland)
Linux Notes
- Global hotkeys require
inputgroup membership. The installer will show instructions. - Native Wayland capture requires GStreamer PipeWire plugin. The installer will attempt to install it automatically.
- Inplace overlay on Wayland only works with fullscreen windows (Wayland's security model prevents knowing window positions).
Installation
One-liner Install
macOS/Linux:
curl -LsSf https://raw.githubusercontent.com/bquenin/interpreter/main/install.sh | bash
Windows (PowerShell):
powershell -c "irm https://raw.githubusercontent.com/bquenin/interpreter/main/install.ps1 | iex"
Then run with interpreter-v2.
Upgrading
To update to the latest version, run the installer again (see Installation above).
Uninstalling
macOS/Linux:
curl -LsSf https://raw.githubusercontent.com/bquenin/interpreter/main/uninstall.sh | bash
Windows (PowerShell):
powershell -c "irm https://raw.githubusercontent.com/bquenin/interpreter/main/uninstall.ps1 | iex"
This removes interpreter-v2, config files, and cached models.
Usage
interpreter-v2
This opens the GUI where you can select a window to capture and configure all settings.
Overlay Modes
Banner Mode (default)
A subtitle bar at the bottom of the screen displaying translated text. Draggable, opaque background, centered text.
Inplace Mode
Transparent overlay positioned over the game window. Translated text appears directly over the original Japanese text at OCR-detected positions. Click-through so you can interact with the game.
How It Works
- Screen Capture - Captures the target window at the configured refresh rate
- OCR - MeikiOCR extracts Japanese text (optimized for pixel fonts)
- Translation - Sugoi V4 translates Japanese to English
- Display - Shows translated text in the selected overlay mode
Troubleshooting
Poor OCR accuracy
Try adjusting the OCR confidence slider in the GUI. Lower values include more text (but may include garbage), higher values are stricter.
Slow performance
First run downloads models (~1.5GB). Subsequent runs use cached models from ~/.cache/huggingface/.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file interpreter_v2-2.17.0.tar.gz.
File metadata
- Download URL: interpreter_v2-2.17.0.tar.gz
- Upload date:
- Size: 4.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c36f82c8dc8aaba13e3ababb33c8d074c634fdbf46368c38f9e27616b7a17001
|
|
| MD5 |
e167a2ca4a7ef7200f11400ab59da7fb
|
|
| BLAKE2b-256 |
e220dad094ab9a2767f5ec3e354f2d9106a2ef0adb2328ae696bd3c9df06e301
|
Provenance
The following attestation bundles were made for interpreter_v2-2.17.0.tar.gz:
Publisher:
publish.yml on bquenin/interpreter
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
interpreter_v2-2.17.0.tar.gz -
Subject digest:
c36f82c8dc8aaba13e3ababb33c8d074c634fdbf46368c38f9e27616b7a17001 - Sigstore transparency entry: 851702013
- Sigstore integration time:
-
Permalink:
bquenin/interpreter@378873348051d371dc78f6da54418d4c8ce8cf93 -
Branch / Tag:
refs/tags/v2.17.0 - Owner: https://github.com/bquenin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@378873348051d371dc78f6da54418d4c8ce8cf93 -
Trigger Event:
release
-
Statement type:
File details
Details for the file interpreter_v2-2.17.0-py3-none-any.whl.
File metadata
- Download URL: interpreter_v2-2.17.0-py3-none-any.whl
- Upload date:
- Size: 574.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
172c9ad6ff35f2d2a0e9660911fa65125a0a7e653344daab1b8f61cdbcae3508
|
|
| MD5 |
7b1fe59cff746a2476a9a86099e1938a
|
|
| BLAKE2b-256 |
5a855fdb433b61a2ce77339be27db5c211e91c4484704e3fa77a2ab3fcc298ce
|
Provenance
The following attestation bundles were made for interpreter_v2-2.17.0-py3-none-any.whl:
Publisher:
publish.yml on bquenin/interpreter
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
interpreter_v2-2.17.0-py3-none-any.whl -
Subject digest:
172c9ad6ff35f2d2a0e9660911fa65125a0a7e653344daab1b8f61cdbcae3508 - Sigstore transparency entry: 851702069
- Sigstore integration time:
-
Permalink:
bquenin/interpreter@378873348051d371dc78f6da54418d4c8ce8cf93 -
Branch / Tag:
refs/tags/v2.17.0 - Owner: https://github.com/bquenin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@378873348051d371dc78f6da54418d4c8ce8cf93 -
Trigger Event:
release
-
Statement type: