A Decky Loader plugin that lets you translate any text on your Steam Deck screen.
It captures your screen, recognizes text using OCR, translates it and then shows the result with screen overlay.
Might be helpful for learning a new language by playing games or some other purposes (you tell me!).
- Steam Deck (LCD or OLED)
- Decky Loader installed
- Internet connection for web-based text recognition and translation services
- Install Decky Loader on your Steam Deck
- Open (...) side bar and move down to Decky menu
- Select store icon to view all the available plugins
- Search for "Decky Translator" and install it
- Install Decky Loader on your Steam Deck
- Download the latest release from the Releases page
- Upload Decky.Translator.zip archive to any directory on your Steam Deck
- Open Decky Loader settings and go to Developer section
- Install Plugin from ZIP file -> "Browse" and then select Decky.Translator.zip
- Press "Translate" button in the main tab of the plugin
- Press (...) to open the menu again and press "Close Overlay"
- Hold L4 button for a Quick Translation
- Hold L4 button again to disable the translation overlay
Button or Combinations can be configured in the Controls tab
Decky Translator allows you to choose different Text Recognition and Translation methods - feel free to experiment.
| Provider | Description | Requirements |
|---|---|---|
| RapidOCR | On-device OCR. Screenshots never leave your device | - |
| OCR.space | Free EU-based Cloud OCR API with some usage limitations. Good choice if you dont need to translate very often | Internet |
| Google Cloud Vision | Best accuracy and speed. Great for complex/stylized text. Has a great free tier, but requires some setup | Internet + API key |
| Provider | Description | Requirements |
|---|---|---|
| Google Translate | It's Google. And it translates | Internet |
| Google Cloud Translation | High quality translations | Internet + API key |
Note: Google Cloud services require an API key but offer a generous free tier for personal use.
- Go to Google Cloud Console
- Click "Select a project" at the top, then "New Project"
- Give your project a name (any name would work) and click "Create"
- Go to APIs & Services > Library
- Search for and enable:
- Cloud Vision API
- Cloud Translation API
- Go to APIs & Services > Credentials
- Click "Create Credentials" > "API Key"
- Authenticate API calls through a service account: keep unchecked
- Application Restrictions: None
- Copy your new API key
- If you need to find this API key later - press "Show key" button
For security, you can restrict the API key to only the Vision and Translation APIs:
- Click on your API key in the Credentials page
- Under "API restrictions", select "Restrict key"
- Select "Cloud Vision API" and "Cloud Translation API"
- Click "Save"
- Open the Decky Translator plugin on your Steam Deck
- Go to the Translation tab
- Select Google Cloud Vision and/or Google Cloud Translation as your providers
- Click "Set Key"
- Enter your Google Cloud API key
- Click "Save"
Google Cloud offers a free tier that should be sufficient for personal use:
- Vision API: First 1,000 units/month free
- Translation API: First 500,000 characters/month free
From my own experience, even everyday usage of Decky Translator with Google Cloud for both recognition and translation rarely goes beyond their free tier. Only once I had to pay around 1€/month - and that was during VERY active development and testing phase.
But if you want to stay on the safe side anyway - you could set up a budget limit and notification in Billing > Budgets & Alerts
Try triggering translation again. If persistent, reboot your Steam Deck
Try increasing the "Font Scaling" option in plugin settings
Double-check that you entered it correctly. If the issue persists, please raise an issue - let's investigate it together
Try other text recognition methods - RapidOCR may not work well with stylized or pixelated text. I also plan to continuously work on recognition quality, so you can expect improvements over time
Decky Translator does not currently support Bazzite. Stay tuned for future releases - this may change
- Add offline OCR functionality
- Fix interface scaling issues on non-default SteamOS values (experimental)
- Rework temporary files solution
- Gamepad support
- Overlay font scaling for large monitors
- Fully offline Translation functionality
- Disable in-game buttons while overlay is active
- Desktop mode support
- Nicer look for translation overlay
- TTS for translated text (press the translated label to listen)
- Arabic support for RapidOCR
- Hindi support for RapidOCR
- Add Finnish language
- Add Romanian language
- Add Bulgarian language
- Add Vietnamese language
This plugin downloads and uses the following third-party components:
Based on PaddleOCR models (Apache 2.0), exported to ONNX format.
- Text Detection + Chinese Recognition: MeKo-Christian/paddleocr-onnx
- Chinese Dictionary + per-language Recognition models: monkt/paddleocr-onnx (Apache 2.0)
- Text Classifier: SWHL/RapidOCR (Apache 2.0)
| File | Purpose |
|---|---|
| ch_PP-OCRv5_mobile_det.onnx | Text detection model (shared across all languages) |
| ch_rec.onnx + ch_dict.txt | Chinese/Japanese/English recognition |
| english_rec.onnx + english_dict.txt | English recognition |
| latin_rec.onnx + latin_dict.txt | Latin script (French, German, Spanish, etc.) |
| eslav_rec.onnx + eslav_dict.txt | East Slavic (Russian, Ukrainian) |
| korean_rec.onnx + korean_dict.txt | Korean recognition |
| greek_rec.onnx + greek_dict.txt | Greek recognition |
| thai_rec.onnx + thai_dict.txt | Thai recognition |
| ch_ppocr_mobile_v2.0_cls_infer.onnx | Text direction classifier |
| Package | License | Purpose |
|---|---|---|
| Pillow==11.2.1 | MIT-CMU | Image processing for screenshot handling |
| requests==2.32.3 | Apache 2.0 | HTTP library for API calls |
| urllib3==2.4.0 | MIT | HTTP client (dependency of requests) |
| rapidocr>=3.6.0 | Apache 2.0 | OCR engine that runs the PP-OCRv5 ONNX models |
| onnxruntime>=1.7.0 | MIT | ONNX model inference runtime |
If you find this plugin useful - feel free to buy me a cup of coffee ❤️
- Valve for creating the Steam Deck - a beautiful device that makes projects like this possible
- UGT (Universal Game Translator) by Seth Robinson for inspiration and the idea of using game translation as a language learning tool
- Decky Loader team for the plugin framework
- Steam Deck Homebrew community for their amazing plugins, which served as a great reference while building this one
- PaddleOCR, RapidOCR and MeKo-Christian for OCR engine, OCR models and ONNX model exports that make offline text recognition possible
- OCR.space for the free OCR API
- Google Cloud for Vision and Translation API
- And You. Yes, You 😉







