⚡️ AI-powered open-source CLI for web & mobile localization.
Docs • Contribute • GitHub Action • Star the repo
Lingo.dev is a community-driven, open-source CLI for AI-powered web and mobile app localization.
Lingo.dev is designed to produce authentic translations instantly, eliminating manual work and management overhead. As a result, teams do accurate localization 100x faster, shipping features to more happy users worldwide. It can be used with your own LLM or with Lingo.dev-managed Localization Engine.
Little-known fact: Lingo.dev began as a small project at a student hackathon back in 2023! Many iterations later, we got accepted into Y Combinator in 2024, and we're now hiring! Interested in building the next-gen localization tools? Send your CV to careers@lingo.dev! 🚀
- Quickstart - Get started in minutes
- Caching - Optimize translation updates
- GitHub Action - Automate localization in CI/CD
- Features - What makes Lingo.dev powerful
- Documentation - Detailed guides and references
- Contribute - Join our community
Lingo.dev CLI is designed to work with both your own LLM, and Lingo.dev-managed Localization Engine built on top of latest SOTA (state-of-the-art) LLMs.
- Create an
i18n.json
configuration file:
{
"version": 1.5,
"provider": {
"id": "anthropic",
"model": "claude-3-7-sonnet-latest",
"prompt": "You're translating text from {source} to {target}."
},
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
}
}
- Set your API key as an environment variable:
export ANTHROPIC_API_KEY=your_anthropic_api_key
# or for OpenAI
export OPENAI_API_KEY=your_openai_api_key
- Run the localization:
npx lingo.dev@latest i18n
Oftentimes, production-grade apps require features like translation memory, glossary support, and localization quality assurance. Also, sometimes, you want an expert to decide for you which LLM provider and model to use, and to update the model automatically when new ones are released. Lingo.dev is a managed Localization Engine that provides these features:
- Create an
i18n.json
configuration file (without provider node):
{
"version": 1.5,
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
}
}
- Authenticate with Lingo.dev:
npx lingo.dev@latest auth --login
- Run localization:
npx lingo.dev@latest i18n
For detailed guides and API references, visit the documentation.
Lingo.dev uses an i18n.lock
file to track content checksums, ensuring only changed text gets translated. This improves:
- ⚡️ Speed: Skip already translated content
- 🔄 Consistency: Prevent unnecessary retranslations
- 💰 Cost: No billing for repeated translations
Lingo.dev offers a GitHub Action to automate localization in your CI/CD pipeline. Here's a basic setup:
- uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
This action runs lingo.dev i18n
on every push, keeping your translations up-to-date automatically.
For pull request mode and other configuration options, visit our GitHub Action documentation.
- 🔥 Instant integration: Works with your codebase in minutes
- 🔄 CI/CD Automation: Set it and forget it
- 🌍 Global reach: Ship to users everywhere
- 🧠 AI-powered: Uses latest language models for natural translations
- 📊 Format-agnostic: JSON, YAML, CSV, Markdown, Android, iOS, and many more
- 🔍 Clean diffs: Preserves your file structure exactly
- ⚡️ Lightning-fast: Translations in seconds, not days
- 🔄 Always synced: Automatically updates when content changes
- 🌟 Human quality: Translations that don't sound robotic
- 👨💻 Built by devs, for devs: We use it ourselves daily
- 📈 Grows with you: From side project to enterprise scale
Lingo.dev is community-driven, so we welcome all contributions!
Have an idea for a new feature? Create a GitHub issue!
Want to contribute? Create a pull request!
Don't see your language? Just add a new language code to the i18n.json
file and open a PR.