The open-source desktop i18n toolkit for Flutter, React Native, and beyond.
LocaleKit is a free, offline-first desktop application that brings the entire internationalization workflow under one roof — from string extraction to AI-assisted translation to locale file export — without SaaS pricing or cloud lock-in.
Status: Pre-MVP · Active Development · Contributions Welcome
If LocaleKit sounds useful to you, consider giving it a ⭐ — it helps the project grow and reach more developers!
Internationalizing an app is tedious. You hunt for hardcoded strings across hundreds of files, assign them keys, create ARB/JSON/YAML files, then copy-paste content into browser tabs to translate. No standalone desktop tool handles the full pipeline — until now.
| Feature | LocaleKit | Web SaaS tools |
|---|---|---|
| Works offline | ✅ | ❌ |
| Source code stays local | ✅ | ❌ |
| AI translation (your own key) | ✅ | Paid add-on |
| Flutter-native ARB support | ✅ | Plugin required |
| Free & open source | ✅ MIT | Freemium |
- Auto framework detection — Identifies Flutter, React Native, and JS/TS projects automatically
- String extraction engine — Scans your codebase and surfaces every hardcoded string
- String browser — Tree view organized by file and class for easy navigation
- Translation editor — Spreadsheet-like editor with inline editing and status tracking
- AI-assisted translation — One-click batch translation via Gemini, OpenAI, or Anthropic (bring your own key)
- Export to locale files — ARB, flat JSON, nested JSON, YAML, and Java Properties
- Multi-project tabs — Switch between projects without losing state
- Offline-first — All scanning, editing, and export works without internet
- Source code refactoring (replace hardcoded strings with i18n keys)
- Translation memory (SQLite cache to avoid re-translating identical strings)
- Import existing locale files (merge mode)
- Plural and interpolation support
- CLI mode for CI/CD pipelines
- VS Code companion extension
See the full Product Requirements Document for the complete roadmap.
Pre-built binaries will be available once v0.1.0 ships. Until then, build from source.
- Flutter SDK 3.19 or later (stable channel)
- Dart SDK 3.3+
- macOS 12+, Windows 10+, or Ubuntu 20.04+
git clone https://github.com/sebandroidev/Localekit.git
cd Localekit
flutter pub get
flutter run -d macos # or windows / linux| Layer | Technology |
|---|---|
| UI Framework | Flutter Desktop 3.19+ |
| Language | Dart 3.3+ |
| State Management | Riverpod |
| Navigation | go_router |
| Local Database | Drift (SQLite) |
| String Parsing | Dart analyzer package (AST) + regex fallback |
| AI Translation | Gemini / OpenAI / Anthropic REST APIs |
| Secure Storage | flutter_secure_storage (OS keychain) |
LocaleKit is community-driven. All skill levels are welcome — whether you're fixing a typo, writing a parser, or designing UI components.
See CONTRIBUTING.md to get started.
Key areas where help is most needed:
- Dart/Flutter: string extraction engine, UI components, desktop platform integration
- Testing: unit tests for parsers, widget tests for the editor
- Translations: translating the app UI itself
- Documentation: guides, tutorials, wiki pages
- Bug reports & feature requests: GitHub Issues
- Discussions: GitHub Discussions
- Code of Conduct: CODE_OF_CONDUCT.md
LocaleKit will always be free. If it saves you time, consider supporting development:
- GitHub Sponsors
- Open Collective (coming soon)
Sponsors get a logo in this README and early access to new features.
MIT — free to use, modify, and distribute. See LICENSE for details.
Built with Flutter. Designed for developers who ship globally.