|
1 | | -packages/cli/README.md |
| 1 | +[](https://mseep.ai/app/lingodotdev-lingo-dev) |
| 2 | + |
| 3 | +<p align="center"> |
| 4 | + <a href="https://lingo.dev"> |
| 5 | + <img src="https://raw.githubusercontent.com/lingodotdev/lingo.dev/main/content/banner.png" width="100%" alt="Lingo.dev – localization engineering platform" /> |
| 6 | + </a> |
| 7 | +</p> |
| 8 | + |
| 9 | +<p align="center"> |
| 10 | + <strong>Open-source localization engineering tools. Connect to Lingo.dev localization engineering platform for consistent, quality translations.</strong> |
| 11 | +</p> |
| 12 | + |
| 13 | +<br /> |
| 14 | + |
| 15 | +<p align="center"> |
| 16 | + <a href="#lingodev-api">Lingo API</a> • |
| 17 | + <a href="#lingodev-mcp">Lingo React MCP</a> • |
| 18 | + <a href="#lingodev-cli">Lingo CLI</a> • |
| 19 | + <a href="#lingodev-cicd">Lingo GitHub Action</a> • |
| 20 | + <a href="#lingodev-compiler">Lingo Compiler for React (Early alpha)</a> |
| 21 | +</p> |
| 22 | + |
| 23 | +<p align="center"> |
| 24 | + <a href="https://github.com/lingodotdev/lingo.dev/actions/workflows/release.yml"> |
| 25 | + <img src="https://github.com/lingodotdev/lingo.dev/actions/workflows/release.yml/badge.svg" alt="Release" /> |
| 26 | + </a> |
| 27 | + <a href="https://github.com/lingodotdev/lingo.dev/blob/main/LICENSE.md"> |
| 28 | + <img src="https://img.shields.io/github/license/lingodotdev/lingo.dev" alt="License" /> |
| 29 | + </a> |
| 30 | + <a href="https://github.com/lingodotdev/lingo.dev/commits/main"> |
| 31 | + <img src="https://img.shields.io/github/last-commit/lingodotdev/lingo.dev" alt="Last Commit" /> |
| 32 | + </a> |
| 33 | + <a href="https://lingo.dev/en"> |
| 34 | + <img src="https://img.shields.io/badge/Product%20Hunt-%231%20DevTool%20of%20the%20Month-orange?logo=producthunt&style=flat-square" alt="Product Hunt #1 DevTool of the Month" /> |
| 35 | + </a> |
| 36 | + <a href="https://lingo.dev/en"> |
| 37 | + <img src="https://img.shields.io/badge/Product%20Hunt-%231%20Product%20of%20the%20Week-orange?logo=producthunt&style=flat-square" alt="Product Hunt #1 DevTool of the Week" /> |
| 38 | + </a> |
| 39 | + <a href="https://lingo.dev/en"> |
| 40 | + <img src="https://img.shields.io/badge/Product%20Hunt-%232%20Product%20of%20the%20Day-orange?logo=producthunt&style=flat-square" alt="Product Hunt #2 Product of the Day" /> |
| 41 | + </a> |
| 42 | + <a href="https://lingo.dev/en"> |
| 43 | + <img src="https://img.shields.io/badge/GitHub-Trending-blue?logo=github&style=flat-square" alt="Github trending" /> |
| 44 | + </a> |
| 45 | +</p> |
| 46 | + |
| 47 | +--- |
| 48 | + |
| 49 | +## Quick Start |
| 50 | + |
| 51 | +| Tool | What it does | Quick Command | |
| 52 | +| -------------------------------------------------- | --------------------------------------------------- | ---------------------------------- | |
| 53 | +| [**Lingo React MCP**](#lingodev-mcp) | AI-assisted i18n setup for React apps | Prompt: `Set up i18n` | |
| 54 | +| [**Lingo CLI**](#lingodev-cli) | Localize JSON, YAML, markdown, CSV, PO files | `npx lingo.dev@latest run` | |
| 55 | +| [**Lingo GitHub Action**](#lingodev-cicd) | Continuous localization in GitHub Actions | `uses: lingodotdev/lingo.dev@main` | |
| 56 | +| [**Lingo Compiler for React**](#lingodev-compiler) | Build-time React localization without i18n wrappers | `withLingo()` plugin | |
| 57 | + |
| 58 | +### Localization engines |
| 59 | + |
| 60 | +These tools connect to [localization engines](https://lingo.dev) – stateful translation APIs you create on the Lingo.dev localization engineering platform. Each engine persists glossaries, brand voice, and per-locale instructions across every request, [reducing terminology errors 16.6–44.6%](https://lingo.dev/research/retrieval-augmented-localization). Or [bring your own LLM](#lingodev-cli). |
| 61 | + |
| 62 | +--- |
| 63 | + |
| 64 | +### Lingo.dev MCP |
| 65 | + |
| 66 | +Setting up i18n in React apps is error-prone – even AI coding assistants hallucinate non-existent APIs and break routing. Lingo.dev MCP gives AI assistants structured access to framework-specific i18n knowledge for Next.js, React Router, and TanStack Start. Works with Claude Code, Cursor, GitHub Copilot Agents, and Codex. |
| 67 | + |
| 68 | +[Read the docs →](https://lingo.dev/en/mcp) |
| 69 | + |
| 70 | +--- |
| 71 | + |
| 72 | +### Lingo.dev CLI |
| 73 | + |
| 74 | +Localize JSON, YAML, markdown, CSV, and PO files in one command. A lockfile tracks what's already localized – only new or changed content gets processed. Defaults to your localization engine on Lingo.dev, or bring your own LLM (OpenAI, Anthropic, Google, Mistral, OpenRouter, Ollama). |
| 75 | + |
| 76 | +```bash |
| 77 | +npx lingo.dev@latest init |
| 78 | +npx lingo.dev@latest run |
| 79 | +``` |
| 80 | + |
| 81 | +[Read the docs →](https://lingo.dev/en/docs/cli) |
| 82 | + |
| 83 | +--- |
| 84 | + |
| 85 | +### Lingo.dev CI/CD |
| 86 | + |
| 87 | +Continuous localization in your pipeline. Every push triggers localization – missing strings get filled before code reaches production. Supports GitHub Actions, GitLab CI/CD, and Bitbucket Pipelines. |
| 88 | + |
| 89 | +```yaml |
| 90 | +uses: lingodotdev/lingo.dev@main |
| 91 | +with: |
| 92 | + api-key: ${{ secrets.LINGODOTDEV_API_KEY }} |
| 93 | +``` |
| 94 | +
|
| 95 | +[Read the docs →](https://lingo.dev/en/docs/integrations) |
| 96 | +
|
| 97 | +--- |
| 98 | +
|
| 99 | +### Lingo.dev API |
| 100 | +
|
| 101 | +Call your localization engine directly from backend code. Synchronous and async localization with webhook delivery, failure isolation per locale, and real-time progress via WebSocket. |
| 102 | +
|
| 103 | +[Read the docs →](https://lingo.dev/en/docs/api) |
| 104 | +
|
| 105 | +--- |
| 106 | +
|
| 107 | +### Lingo Compiler for React (Early alpha) |
| 108 | +
|
| 109 | +Build-time React localization without i18n wrappers. Write components with plain English text – the compiler detects translatable strings and generates localized variants at build time. No translation keys, no JSON files, no `t()` functions. Supports Next.js (App Router) and Vite + React. |
| 110 | + |
| 111 | +[Read the docs →](https://lingo.dev/en/docs/react/compiler) |
| 112 | + |
| 113 | +--- |
| 114 | + |
| 115 | +## Contributing |
| 116 | + |
| 117 | +Contributions welcome. Please follow these guidelines: |
| 118 | + |
| 119 | +1. **Issues:** [Report bugs or request features](https://github.com/lingodotdev/lingo.dev/issues) |
| 120 | +2. **Pull Requests:** [Submit changes](https://github.com/lingodotdev/lingo.dev/pulls) |
| 121 | + - Every PR requires a changeset: `pnpm new` (or `pnpm new:empty` for non-release changes) |
| 122 | + - Ensure tests pass before submitting |
| 123 | +3. **Development:** This is a pnpm + turborepo monorepo |
| 124 | + - Install dependencies: `pnpm install` |
| 125 | + - Run tests: `pnpm test` |
| 126 | + - Build: `pnpm build` |
| 127 | + |
| 128 | +**Support:** [Discord community](https://lingo.dev/go/discord) |
| 129 | + |
| 130 | +## Star History |
| 131 | + |
| 132 | +If you find Lingo.dev useful, give us a star and help us reach 10,000 stars! |
| 133 | + |
| 134 | +[](https://www.star-history.com/#lingodotdev/lingo.dev&Date) |
| 135 | + |
| 136 | +## Localized Documentation |
| 137 | + |
| 138 | +**Available translations:** |
| 139 | + |
| 140 | +[English](https://github.com/lingodotdev/lingo.dev) • [中文](/readme/zh-Hans.md) • [日本語](/readme/ja.md) • [한국어](/readme/ko.md) • [Español](/readme/es.md) • [Français](/readme/fr.md) • [Русский](/readme/ru.md) • [Українська](/readme/uk-UA.md) • [Deutsch](/readme/de.md) • [Italiano](/readme/it.md) • [العربية](/readme/ar.md) • [עברית](/readme/he.md) • [हिन्दी](/readme/hi.md) • [Português (Brasil)](/readme/pt-BR.md) • [বাংলা](/readme/bn.md) • [فارسی](/readme/fa.md) • [Polski](/readme/pl.md) • [Türkçe](/readme/tr.md) • [اردو](/readme/ur.md) • [भोजपुरी](/readme/bho.md) • [অসমীয়া](/readme/as-IN.md) • [ગુજરાતી](/readme/gu-IN.md) • [मराठी](/readme/mr-IN.md) • [ଓଡ଼ିଆ](/readme/or-IN.md) • [ਪੰਜਾਬੀ](/readme/pa-IN.md) • [සිංහල](/readme/si-LK.md) • [தமிழ்](/readme/ta-IN.md) • [తెలుగు](/readme/te-IN.md) |
| 141 | + |
| 142 | +**Adding a new language:** |
| 143 | + |
| 144 | +1. Add locale code to [`i18n.json`](./i18n.json) using [BCP-47 format](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) |
| 145 | +2. Submit a pull request |
0 commit comments