Real-time translation and language learning Android app for games, visual novels, manga, and any other screen text. 屏幕翻译 游戏翻译
See the codeEnglish | 简体中文 | 繁體中文 | Español | العربية | Français | Português (Brasil) | Русский | Deutsch | 日本語 | Türkçe | Tiếng Việt | 한국어 | ไทย
Real-time translation and language learning Android app for games, visual novels, manga, and any other screen text. Supports 26 game languages and 59 user languages!
Download the latest release by clicking here
To report issues, receive support, or make requests, please join the Discord server
PlayTranslate with Persona 3 Reload
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:
Install the APK, then re-enable Play Protect afterward to keep scanning your other apps.
A few advanced features (like hotkey hold-to-preview) will prompt you to enable accessibility permissions. On Android 13 and later, Android greys out the accessibility switch for any app installed from a downloaded APK, and tapping it shows a "Restricted setting" message. To unblock it:
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
PlayTranslate translates from 26 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.
| Language | Native name | Code |
|---|---|---|
| English | English | en |
| Chinese (Simplified) | 简体中文 | zh |
| Chinese (Traditional) | 繁體中文 | zh-Hant |
| Hindi | हिन्दी | hi |
| Spanish | Español | es |
| Arabic | العربية | ar |
| French | Français | fr |
| Portuguese | Português | pt |
| Russian | Русский | ru |
| Indonesian | Bahasa Indonesia | id |
| German | Deutsch | de |
| Japanese | 日本語 | ja |
| Turkish | Türkçe | tr |
| Vietnamese | Tiếng Việt | vi |
| Korean | 한국어 | ko |
| Italian | Italiano | it |
| Thai | ไทย | th |
| Dutch | Nederlands | nl |
| Romanian | Română | ro |
| Hungarian | Magyar | hu |
| Swedish | Svenska | sv |
| Catalan | Català | ca |
| Danish | Dansk | da |
| Finnish | Suomi | fi |
| Norwegian | Norsk | no |
| Polish | Polski | pl |
| 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 |
By default, translation uses Lingva with ML Kit as an offline fallback. For higher quality translations, you can add any of the following under Settings → Translation services. Add as many as you like — each service is its own entry in the list, so you can keep several configured and reorder them to pick which one translates first:
Install AnkiDroid and grant PlayTranslate access in Settings to export cards directly to your decks.
Work we reimplemented rather than linked. No source was copied verbatim.
translator-rs planar tracking engine is the design reference for the camera tool's keyframe-OCR tracker. We took the split between optical flow that sustains correspondences and descriptor re-matching that corrects drift, the Idle/Locked/Lost lifecycle with inlier hysteresis, the anchor cache that re-locks a previously seen scene without re-running OCR, and several tuned thresholds. Independently reimplemented in Kotlin over OpenCV, without the reference's IMU prior and with a smoothing filter of our own (offline-translator GPL 3.0; translator-rs MIT)newmm maximal-matcher, run over a word list that includes its CC0 list (Apache 2.0)_resolve_lines and EasyOCR group_text_box (Apache 2.0)YomitanContentHtml is an independent Kotlin implementation of the format's tag and inline-style whitelists, following Yomitan's render-side sanitisation model (GPL 3.0)manga-ocr-base-2025 by jzhang533, based on manga-ocr by kha-white (Maciej Budyś), both Apache 2.0, converted to fp16 MNN for on-device use. The manga-ocr model family is trained using the Manga109-s dataset, whose use is acknowledged per its terms643 followers · starred Oct 2026
2,288 followers · starred May 2026
516 followers · starred May 2026
182 followers · starred Mar 2026
Real-time translation and language learning Android app for games, visual novels, manga, and any other screen text. 屏幕翻译 游戏翻译
See the codeEnglish | 简体中文 | 繁體中文 | Español | العربية | Français | Português (Brasil) | Русский | Deutsch | 日本語 | Türkçe | Tiếng Việt | 한국어 | ไทย
Real-time translation and language learning Android app for games, visual novels, manga, and any other screen text. Supports 26 game languages and 59 user languages!
Download the latest release by clicking here
To report issues, receive support, or make requests, please join the Discord server
PlayTranslate with Persona 3 Reload
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:
Install the APK, then re-enable Play Protect afterward to keep scanning your other apps.
A few advanced features (like hotkey hold-to-preview) will prompt you to enable accessibility permissions. On Android 13 and later, Android greys out the accessibility switch for any app installed from a downloaded APK, and tapping it shows a "Restricted setting" message. To unblock it:
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
PlayTranslate translates from 26 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.
| Language | Native name | Code |
|---|---|---|
| English | English | en |
| Chinese (Simplified) | 简体中文 | zh |
| Chinese (Traditional) | 繁體中文 | zh-Hant |
| Hindi | हिन्दी | hi |
| Spanish | Español | es |
| Arabic | العربية | ar |
| French | Français | fr |
| Portuguese | Português | pt |
| Russian | Русский | ru |
| Indonesian | Bahasa Indonesia | id |
| German | Deutsch | de |
| Japanese | 日本語 | ja |
| Turkish | Türkçe | tr |
| Vietnamese | Tiếng Việt | vi |
| Korean | 한국어 | ko |
| Italian | Italiano | it |
| Thai | ไทย | th |
| Dutch | Nederlands | nl |
| Romanian | Română | ro |
| Hungarian | Magyar | hu |
| Swedish | Svenska | sv |
| Catalan | Català | ca |
| Danish | Dansk | da |
| Finnish | Suomi | fi |
| Norwegian | Norsk | no |
| Polish | Polski | pl |
| 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 |
By default, translation uses Lingva with ML Kit as an offline fallback. For higher quality translations, you can add any of the following under Settings → Translation services. Add as many as you like — each service is its own entry in the list, so you can keep several configured and reorder them to pick which one translates first:
Install AnkiDroid and grant PlayTranslate access in Settings to export cards directly to your decks.
Work we reimplemented rather than linked. No source was copied verbatim.
translator-rs planar tracking engine is the design reference for the camera tool's keyframe-OCR tracker. We took the split between optical flow that sustains correspondences and descriptor re-matching that corrects drift, the Idle/Locked/Lost lifecycle with inlier hysteresis, the anchor cache that re-locks a previously seen scene without re-running OCR, and several tuned thresholds. Independently reimplemented in Kotlin over OpenCV, without the reference's IMU prior and with a smoothing filter of our own (offline-translator GPL 3.0; translator-rs MIT)newmm maximal-matcher, run over a word list that includes its CC0 list (Apache 2.0)_resolve_lines and EasyOCR group_text_box (Apache 2.0)YomitanContentHtml is an independent Kotlin implementation of the format's tag and inline-style whitelists, following Yomitan's render-side sanitisation model (GPL 3.0)manga-ocr-base-2025 by jzhang533, based on manga-ocr by kha-white (Maciej Budyś), both Apache 2.0, converted to fp16 MNN for on-device use. The manga-ocr model family is trained using the Manga109-s dataset, whose use is acknowledged per its terms643 followers · starred Oct 2026
2,288 followers · starred May 2026
516 followers · starred May 2026
182 followers · starred Mar 2026