playtranslate
A real-time game translation Android app, built for both language learners and people who just want to play. Supports 21 game languages and 59 user languages!
To report issues, receive support, or make requests, please join the Discord server
PlayTranslate with Persona 3 Reload and Breath of Fire 3
Features
- One-tap Translation — Capture the game screen and translate Japanese text with one tap
- Auto Translation Mode — Automatically translates as dialogue changes, no tapping required
- Word lookup — Hover the floating lens over any word for immediate dictionary definitionss
- Furigana/Pinyin Mode — Show reading hints above characters in real time
- Hotkey hold-to-preview — Configure a physical key to hold-to-preview translations or furigana, great for handhelds with dedicated buttons
- Dual Screen & Split Screen — Works across both screens on dual-display devices like the Ayn Thor, or in Android split-screen alongside windowed games
- Capture regions — Crop to just the dialogue box, subtitles, or any custom area
- Anki export — Save sentences to AnkiDroid with the original text, translation, word list, target words, and a screenshot
- Offline — OCR and translation work without an internet connection
How to Use
- Download the latest release by clicking here
- On your Android, enable Settings → Security → Install unknown apps for your file manager or browser
- Open the APK and tap Install
- On first launch, follow the onboarding steps to grant the necessary permissions
Won't install?
On some Android devices, Google Play Protect blocks sideloaded APKs and shows a vague "App not installed" or "harmful app" warning. If that happens, temporarily disable the scanner:
- Open the Play Store
- Tap your profile icon (top right)
- Tap Play Protect
- Tap the gear icon (top right)
- Turn off Scan apps with Play Protect
Install the APK, then re-enable Play Protect afterward to keep scanning your other apps.
Can't enable accessibility?
Some Android OEMs block sideloaded apps from receiving accessibility permissions by default — the toggle in Settings is grayed out or shows a "Restricted setting" message. To unblock it:
- Open Settings → Apps → PlayTranslate
- Tap the ⋮ menu (top right)
- Tap Allow restricted settings
- Authenticate when prompted
You can now turn on accessibility for PlayTranslate.
Support
To report issues, receive support, or make requests, please join the Discord server
You can support PlayTranslate on Ko-fi at https://ko-fi.com/playtranslate
Supported Languages
PlayTranslate translates from 21 game languages (the text it can read off the screen) into 59 translation languages (the language shown to you). Both tables are sorted by total worldwide speakers.
Game languages (read from the screen)
| Language | Native name | Code |
|---|---|---|
| English | English | en |
| Chinese (Simplified) | 简体中文 | zh |
| Spanish | Español | es |
| French | Français | fr |
| Portuguese | Português | pt |
| Indonesian | Bahasa Indonesia | id |
| German | Deutsch | de |
| Japanese | 日本語 | ja |
| Vietnamese | Tiếng Việt | vi |
| Turkish | Türkçe | tr |
| Korean | 한국어 | ko |
| Italian | Italiano | it |
| Chinese (Traditional) | 繁體中文 | zh-Hant |
| Romanian | Română | ro |
| Dutch | Nederlands | nl |
| Hungarian | Magyar | hu |
| Swedish | Svenska | sv |
| Catalan | Català | ca |
| Danish | Dansk | da |
| Finnish | Suomi | fi |
| Norwegian | Norsk | no |
Translation languages (translated for you)
| Language | Native name | Code |
|---|---|---|
| English | English | en |
| Chinese | 中文 | zh |
| Hindi | हिन्दी | hi |
| Spanish | Español | es |
| Arabic | العربية | ar |
| French | Français | fr |
| Bengali | বাংলা | bn |
| Portuguese | Português | pt |
| Russian | Русский | ru |
| Urdu | اردو | ur |
| Indonesian | Bahasa Indonesia | id |
| Swahili | Kiswahili | sw |
| German | Deutsch | de |
| Japanese | 日本語 | ja |
| Marathi | मराठी | mr |
| Telugu | తెలుగు | te |
| Turkish | Türkçe | tr |
| Vietnamese | Tiếng Việt | vi |
| Korean | 한국어 | ko |
| Tamil | தமிழ் | ta |
| Persian | فارسی | fa |
| Italian | Italiano | it |
| Thai | ไทย | th |
| Gujarati | ગુજરાતી | gu |
| Polish | Polski | pl |
| Ukrainian | Українська | uk |
| Tagalog | Tagalog | tl |
| Malay | Bahasa Melayu | ms |
| Kannada | ಕನ್ನಡ | kn |
| Dutch | Nederlands | nl |
| Romanian | Română | ro |
| Hungarian | Magyar | hu |
| Greek | Ελληνικά | el |
| Czech | Čeština | cs |
| Swedish | Svenska | sv |
| Belarusian | Беларуская | be |
| Hebrew | עברית | he |
| Bulgarian | Български | bg |
| Catalan | Català | ca |
| Slovak | Slovenčina | sk |
| Haitian Creole | Kreyòl Ayisyen | ht |
| Croatian | Hrvatski | hr |
| Danish | Dansk | da |
| Finnish | Suomi | fi |
| Norwegian | Norsk | no |
| Albanian | Shqip | sq |
| Galician | Galego | gl |
| Slovenian | Slovenščina | sl |
| Lithuanian | Lietuvių | lt |
| Latvian | Latviešu | lv |
| Afrikaans | Afrikaans | af |
| Macedonian | Македонски | mk |
| Estonian | Eesti | et |
| Georgian | ქართული | ka |
| Welsh | Cymraeg | cy |
| Maltese | Malti | mt |
| Icelandic | Íslenska | is |
| Irish | Gaeilge | ga |
| Esperanto | Esperanto | eo |
Optional: DeepL API Key
By default, translation uses Lingva with ML Kit as an offline fallback. For higher quality translations, get a free DeepL API key at deepl.com/en/pro#developer and enter it in Settings → DeepL API Key.
Optional: Anki Flashcards
Install AnkiDroid and grant PlayTranslate access in Settings to export cards directly to your decks.
Credits
Libraries and services
- ML Kit — on-device OCR and translation
- Kuromoji — Japanese morphological analysis
- HanLP — Chinese word segmentation
- KOMORAN — Korean morphological analysis
- Snowball stemmers via Apache Lucene — Latin/European stemming
- Lingva — online translation
- AnkiDroid — flashcard integration
Linguistic data
- JMdict and KANJIDIC2 — Japanese dictionary and kanji data (EDRDG licence)
- CC-CEDICT — Chinese-English dictionary (CC BY-SA 4.0)
- Wiktionary via kaikki.org — multilingual dictionary entries (CC BY-SA)
- Tatoeba — example sentences (CC BY 2.0)
- PanLex — multilingual translation pairs (CC0)
- wordfreq — word frequency data
