Real-time, in-place visual screen translation for Android powered by Google's Gemini 3.6 Flash & ML Kit.
Translate any game, comic, chat, or foreign UI in real-time.
Zero telemetry. No subscriptions. 100% Free & Open-Source.
ALST (AI Live Screen Translation) is an open-source Android utility that eliminates language barriers across all applications on your phone. Operating seamlessly via a non-intrusive floating overlay, ALST captures your active screen using hardware-accelerated MediaProjection, processes text using Gemini 3.6 Flash's multimodal vision model, and dynamically renders accurate translations directly over the original text coordinates using Android's WindowManager.
Whether you are playing untranslated foreign mobile games, reading raw Webtoons/Manga, chatting on messaging apps, or browsing international news, ALST provides an instant, contextual, and immersive reading experience without switching apps or taking manual screenshots.
💡 Primary Use Cases:
- 🎮 Gaming: Play Japanese/Korean RPGs and mobile titles with live dialog and menu overlays.
- 📖 Comics & Manga: Read webtoons, manhwa, and manga without waiting for scanlation groups.
- 💬 Live Messaging: Chat across WhatsApp, Telegram, or WeChat with instant auto-translation.
- 📰 Global News & Research: Read international apps and documents with full RTL/LTR script rendering.
ImageReader lifecycle closures.FOREGROUND_SERVICE_MEDIA_PROJECTION requirements and graceful system UI disconnect callbacks.
![]() Online (Gemini AI) Mode |
![]() Offline (Local ML Kit) Mode |
![]() Offline Model Sync & Manager |
ALST translates raw screen text while preserving the layout, fonts, and spatial positioning:
![]() 🇮🇷 Translation to Persian (فارسی) |
![]() 🇯🇵 Translation to Japanese (日本語) |
![]() 🇩🇪 Translation to German (Deutsch) |
![]() 🇮🇹 Translation to Italian (Italiano) |
![]() Non-Intrusive Floating FAB |
![]() Long-Press Close Action |
![]() Android Quick Settings Tile |
flowchart TD
A[User Taps Floating FAB] -->|Trigger Signal| B[ScreenTranslatorService]
B -->|Request Frame| C[ScreenCaptureManager]
C -->|MediaProjection + VirtualDisplay| D[ImageReader Frame Buffer]
D -->|Throttle: 300ms| E{Active Engine Type}
%% Online Route
E -->|Online Mode| F[Gemini 3.6 Flash API]
F -->|Multimodal Vision Prompt| G[JSON Parser & Markdown Sanitizer]
G -->|Extract Normalized Bounding Boxes + Text| H[OverlayManager]
%% Offline Route
E -->|Offline Mode| I[ML Kit TextRecognition]
I -->|Bounding Rects| J[ML Kit On-Device Translate]
J -->|Translated Blocks| H
%% Render
H -->|Calculate Screen Insets & Density| K[Jetpack Compose Overlay View]
K -->|WindowManager.addView| L[Screen Translation Canvas Displayed]
L -->|Tap Overlay / 30s Timeout| M[Clean Dismiss & Recycle Bitmaps]
| Feature | ALST (This Project) | Google Lens / Translate App | Typical Screen Translators |
|---|---|---|---|
| Engine | Gemini 3.6 Flash + ML Kit | Google Translate | Basic Tesseract OCR |
| Contextual Accuracy | 🟢 Ultra High (LLM-grade) | 🟡 Medium | 🔴 Low (Literal) |
| Multimodal Single-Pass | 🟢 Yes (Vision AI) | 🔴 No (Chained OCR+API) | 🔴 No |
| Mixed Language Screens | 🟢 Native Auto-Detect | 🟡 Single Source Only | 🔴 Single Source Only |
| Overlay Placement | 🟢 In-place Spatial Matching | 🔴 Full Screen Freeze/Card | 🟡 Floating Card |
| Privacy & Telemetry | 🟢 Zero Telemetry / BYOK | 🔴 High Telemetry | 🔴 Heavy Ads & Trackers |
| Open Source | 🟢 100% Free & MIT Licensed | 🔴 Proprietary | 🔴 Freemium / Paid |
StateFlow / SharedFlowMediaProjection, VirtualDisplay, ImageReaderWindowManager (TYPE_APPLICATION_OVERLAY), TileServiceJetpack DataStore (Preferences)gemini-3.6-flash)text-recognition, translate, language-id)ALSTMobile/
├── app/
│ ├── src/main/
│ │ ├── java/com/alst/mobile/
│ │ │ ├── core/
│ │ │ │ ├── capture/ # MediaProjection & screen capture pipeline
│ │ │ │ ├── ocr/ # ML Kit local text detection
│ │ │ │ ├── overlay/ # WindowManager floating overlays & FAB
│ │ │ │ └── translator/ # Gemini 3.6 Flash & ML Kit engine abstraction
│ │ │ ├── data/
│ │ │ │ └── preferences/ # DataStore local settings repository
│ │ │ ├── domain/
│ │ │ │ └── model/ # TranslationBlock, EngineType, Language models
│ │ │ ├── service/ # Foreground translation & Quick Settings tile services
│ │ │ └── ui/
│ │ │ ├── dashboard/ # Compose Glassmorphic dashboard & sheets
│ │ │ └── theme/ # Cyber-dark theme, gradients, typography
│ │ ├── res/ # Drawables, mipmaps, strings
│ │ └── AndroidManifest.xml # Android 14 compliant permissions & services
│ └── build.gradle.kts
├── docs/ # Screenshots, demo GIF, and media assets
├── gradle/
├── README.md
├── README-fa.md
└── LICENSE
.apk file on your Android device (ensure "Install from unknown sources" is allowed).# 1. Clone the repository
git clone https://github.com/navidseyedain/ALSTMobile.git
# 2. Navigate to project root
cd ALSTMobile
# 3. Build debug APK using the included Gradle wrapper
./gradlew assembleDebug
MediaProjection foreground service complianceContributions are what make the open-source community an incredible place to learn, inspire, and create. Any contributions you make are greatly appreciated!
git checkout -b feature/AmazingFeature)git commit -m 'feat: Add some AmazingFeature')git push origin feature/AmazingFeature)Distributed under the MIT License. See LICENSE for more information.
Navid Seyedain
2 commits
Kotlin
100.0%
Real-time, in-place visual screen translation for Android powered by Google's Gemini 3.6 Flash & ML Kit.
Translate any game, comic, chat, or foreign UI in real-time.
Zero telemetry. No subscriptions. 100% Free & Open-Source.
ALST (AI Live Screen Translation) is an open-source Android utility that eliminates language barriers across all applications on your phone. Operating seamlessly via a non-intrusive floating overlay, ALST captures your active screen using hardware-accelerated MediaProjection, processes text using Gemini 3.6 Flash's multimodal vision model, and dynamically renders accurate translations directly over the original text coordinates using Android's WindowManager.
Whether you are playing untranslated foreign mobile games, reading raw Webtoons/Manga, chatting on messaging apps, or browsing international news, ALST provides an instant, contextual, and immersive reading experience without switching apps or taking manual screenshots.
💡 Primary Use Cases:
- 🎮 Gaming: Play Japanese/Korean RPGs and mobile titles with live dialog and menu overlays.
- 📖 Comics & Manga: Read webtoons, manhwa, and manga without waiting for scanlation groups.
- 💬 Live Messaging: Chat across WhatsApp, Telegram, or WeChat with instant auto-translation.
- 📰 Global News & Research: Read international apps and documents with full RTL/LTR script rendering.
ImageReader lifecycle closures.FOREGROUND_SERVICE_MEDIA_PROJECTION requirements and graceful system UI disconnect callbacks.
![]() Online (Gemini AI) Mode |
![]() Offline (Local ML Kit) Mode |
![]() Offline Model Sync & Manager |
ALST translates raw screen text while preserving the layout, fonts, and spatial positioning:
![]() 🇮🇷 Translation to Persian (فارسی) |
![]() 🇯🇵 Translation to Japanese (日本語) |
![]() 🇩🇪 Translation to German (Deutsch) |
![]() 🇮🇹 Translation to Italian (Italiano) |
![]() Non-Intrusive Floating FAB |
![]() Long-Press Close Action |
![]() Android Quick Settings Tile |
flowchart TD
A[User Taps Floating FAB] -->|Trigger Signal| B[ScreenTranslatorService]
B -->|Request Frame| C[ScreenCaptureManager]
C -->|MediaProjection + VirtualDisplay| D[ImageReader Frame Buffer]
D -->|Throttle: 300ms| E{Active Engine Type}
%% Online Route
E -->|Online Mode| F[Gemini 3.6 Flash API]
F -->|Multimodal Vision Prompt| G[JSON Parser & Markdown Sanitizer]
G -->|Extract Normalized Bounding Boxes + Text| H[OverlayManager]
%% Offline Route
E -->|Offline Mode| I[ML Kit TextRecognition]
I -->|Bounding Rects| J[ML Kit On-Device Translate]
J -->|Translated Blocks| H
%% Render
H -->|Calculate Screen Insets & Density| K[Jetpack Compose Overlay View]
K -->|WindowManager.addView| L[Screen Translation Canvas Displayed]
L -->|Tap Overlay / 30s Timeout| M[Clean Dismiss & Recycle Bitmaps]
| Feature | ALST (This Project) | Google Lens / Translate App | Typical Screen Translators |
|---|---|---|---|
| Engine | Gemini 3.6 Flash + ML Kit | Google Translate | Basic Tesseract OCR |
| Contextual Accuracy | 🟢 Ultra High (LLM-grade) | 🟡 Medium | 🔴 Low (Literal) |
| Multimodal Single-Pass | 🟢 Yes (Vision AI) | 🔴 No (Chained OCR+API) | 🔴 No |
| Mixed Language Screens | 🟢 Native Auto-Detect | 🟡 Single Source Only | 🔴 Single Source Only |
| Overlay Placement | 🟢 In-place Spatial Matching | 🔴 Full Screen Freeze/Card | 🟡 Floating Card |
| Privacy & Telemetry | 🟢 Zero Telemetry / BYOK | 🔴 High Telemetry | 🔴 Heavy Ads & Trackers |
| Open Source | 🟢 100% Free & MIT Licensed | 🔴 Proprietary | 🔴 Freemium / Paid |
StateFlow / SharedFlowMediaProjection, VirtualDisplay, ImageReaderWindowManager (TYPE_APPLICATION_OVERLAY), TileServiceJetpack DataStore (Preferences)gemini-3.6-flash)text-recognition, translate, language-id)ALSTMobile/
├── app/
│ ├── src/main/
│ │ ├── java/com/alst/mobile/
│ │ │ ├── core/
│ │ │ │ ├── capture/ # MediaProjection & screen capture pipeline
│ │ │ │ ├── ocr/ # ML Kit local text detection
│ │ │ │ ├── overlay/ # WindowManager floating overlays & FAB
│ │ │ │ └── translator/ # Gemini 3.6 Flash & ML Kit engine abstraction
│ │ │ ├── data/
│ │ │ │ └── preferences/ # DataStore local settings repository
│ │ │ ├── domain/
│ │ │ │ └── model/ # TranslationBlock, EngineType, Language models
│ │ │ ├── service/ # Foreground translation & Quick Settings tile services
│ │ │ └── ui/
│ │ │ ├── dashboard/ # Compose Glassmorphic dashboard & sheets
│ │ │ └── theme/ # Cyber-dark theme, gradients, typography
│ │ ├── res/ # Drawables, mipmaps, strings
│ │ └── AndroidManifest.xml # Android 14 compliant permissions & services
│ └── build.gradle.kts
├── docs/ # Screenshots, demo GIF, and media assets
├── gradle/
├── README.md
├── README-fa.md
└── LICENSE
.apk file on your Android device (ensure "Install from unknown sources" is allowed).# 1. Clone the repository
git clone https://github.com/navidseyedain/ALSTMobile.git
# 2. Navigate to project root
cd ALSTMobile
# 3. Build debug APK using the included Gradle wrapper
./gradlew assembleDebug
MediaProjection foreground service complianceContributions are what make the open-source community an incredible place to learn, inspire, and create. Any contributions you make are greatly appreciated!
git checkout -b feature/AmazingFeature)git commit -m 'feat: Add some AmazingFeature')git push origin feature/AmazingFeature)Distributed under the MIT License. See LICENSE for more information.
Navid Seyedain
2 commits
Kotlin
100.0%