Skip to content

Commit 15b448f

Browse files
fix: make packages/cli/README.md the source of truth for npm package (#685)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Max Prilutskiy <maks.prilutskiy@gmail.com>
1 parent b05d801 commit 15b448f

File tree

4 files changed

+176
-183
lines changed

4 files changed

+176
-183
lines changed

.changeset/fix-npm-readme.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"lingo.dev": patch
3+
---
4+
5+
Fix npm package readme by making packages/cli/README.md the source of truth and creating symlinks from root readme.md and readme/en.md

packages/cli/README.md

Lines changed: 169 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,176 @@
1-
# Lingo.dev CLI
1+
<p align="center">
2+
<a href="https://lingo.dev">
3+
<img src="https://raw.githubusercontent.com/lingodotdev/lingo.dev/main/content/banner.dark.png" width="100%" alt="Lingo.dev" />
4+
</a>
5+
</p>
26

3-
CLI for Lingo.dev.
7+
<p align="center">
8+
<strong>⚡️ AI-powered open-source CLI for web & mobile localization.</strong>
9+
</p>
410

5-
### Installation
11+
<br />
12+
13+
<p align="center">
14+
<a href="https://docs.lingo.dev">Docs</a> •
15+
<a href="https://github.com/lingodotdev/lingo.dev/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22">Contribute</a> •
16+
<a href="#-github-action">GitHub Action</a> •
17+
<a href="#">Star the repo</a>
18+
</p>
19+
20+
<p align="center">
21+
<a href="https://github.com/lingodotdev/lingo.dev/actions/workflows/release.yml">
22+
<img src="https://github.com/lingodotdev/lingo.dev/actions/workflows/release.yml/badge.svg" alt="Release" />
23+
</a>
24+
<a href="https://github.com/lingodotdev/lingo.dev/blob/main/LICENSE.md">
25+
<img src="https://img.shields.io/github/license/lingodotdev/lingo.dev" alt="License" />
26+
</a>
27+
<a href="https://github.com/lingodotdev/lingo.dev/commits/main">
28+
<img src="https://img.shields.io/github/last-commit/lingodotdev/lingo.dev" alt="Last Commit" />
29+
</a>
30+
</p>
31+
32+
<br />
33+
34+
Lingo.dev is a community-driven, open-source CLI for AI-powered web and mobile app localization.
35+
36+
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.
37+
38+
> **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! 🚀
39+
40+
## 📑 In This Guide
41+
42+
- [Quickstart](#-quickstart) - Get started in minutes
43+
- [Caching](#-caching-with-i18nlock) - Optimize translation updates
44+
- [GitHub Action](#-github-action) - Automate localization in CI/CD
45+
- [Features](#-supercharged-features) - What makes Lingo.dev powerful
46+
- [Documentation](#-documentation) - Detailed guides and references
47+
- [Contribute](#-contribute) - Join our community
48+
49+
## 💫 Quickstart
50+
51+
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.
52+
53+
### Using Your Own LLM (BYOK or Bring Your Own Key)
54+
55+
1. Create an `i18n.json` configuration file:
56+
57+
```json
58+
{
59+
"version": 1.5,
60+
"provider": {
61+
"id": "anthropic",
62+
"model": "claude-3-7-sonnet-latest",
63+
"prompt": "You're translating text from {source} to {target}."
64+
},
65+
"locale": {
66+
"source": "en",
67+
"targets": ["es", "fr", "de"]
68+
}
69+
}
70+
```
71+
72+
2. Set your API key as an environment variable:
73+
74+
```bash
75+
export ANTHROPIC_API_KEY=your_anthropic_api_key
76+
# or for OpenAI
77+
export OPENAI_API_KEY=your_openai_api_key
78+
```
79+
80+
3. Run the localization:
81+
82+
```bash
83+
npx lingo.dev@latest i18n
84+
```
85+
86+
### Using Lingo.dev Cloud
87+
88+
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:
89+
90+
1. Create an `i18n.json` configuration file (without provider node):
91+
92+
```json
93+
{
94+
"version": 1.5,
95+
"locale": {
96+
"source": "en",
97+
"targets": ["es", "fr", "de"]
98+
}
99+
}
100+
```
101+
102+
2. Authenticate with Lingo.dev:
103+
104+
```bash
105+
npx lingo.dev@latest auth --login
106+
```
107+
108+
3. Run localization:
6109

7110
```bash
8-
npm i lingo.dev
111+
npx lingo.dev@latest i18n
9112
```
10113

11-
### Documentation
114+
## 📖 Documentation
115+
116+
For detailed guides and API references, visit the [documentation](https://lingo.dev/go/docs).
117+
118+
## 🔒 Caching with `i18n.lock`
119+
120+
Lingo.dev uses an `i18n.lock` file to track content checksums, ensuring only changed text gets translated. This improves:
121+
122+
- ⚡️ **Speed**: Skip already translated content
123+
- 🔄 **Consistency**: Prevent unnecessary retranslations
124+
- 💰 **Cost**: No billing for repeated translations
125+
126+
## 🤖 GitHub Action
127+
128+
Lingo.dev offers a GitHub Action to automate localization in your CI/CD pipeline. Here's a basic setup:
129+
130+
```yaml
131+
- uses: lingodotdev/lingo.dev@main
132+
with:
133+
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
134+
```
135+
136+
This action runs `lingo.dev i18n` on every push, keeping your translations up-to-date automatically.
137+
138+
For pull request mode and other configuration options, visit our [GitHub Action documentation](https://docs.lingo.dev/ci-action/gha).
139+
140+
## ⚡️ Lingo.dev's Superpowers
141+
142+
- 🔥 **Instant integration**: Works with your codebase in minutes
143+
- 🔄 **CI/CD Automation**: Set it and forget it
144+
- 🌍 **Global reach**: Ship to users everywhere
145+
- 🧠 **AI-powered**: Uses latest language models for natural translations
146+
- 📊 **Format-agnostic**: JSON, YAML, CSV, Markdown, Android, iOS, and many more
147+
- 🔍 **Clean diffs**: Preserves your file structure exactly
148+
- ⚡️ **Lightning-fast**: Translations in seconds, not days
149+
- 🔄 **Always synced**: Automatically updates when content changes
150+
- 🌟 **Human quality**: Translations that don't sound robotic
151+
- 👨‍💻 **Built by devs, for devs**: We use it ourselves daily
152+
- 📈 **Grows with you**: From side project to enterprise scale
153+
154+
## 🤝 Contribute
155+
156+
Lingo.dev is community-driven, so we welcome all contributions!
157+
158+
Have an idea for a new feature? Create a GitHub issue!
159+
160+
Want to contribute? Create a pull request!
161+
162+
## 🌐 Readme in other languages
163+
164+
- [English](https://github.com/lingodotdev/lingo.dev)
165+
- [Spanish](/readme/es.md)
166+
- [French](/readme/fr.md)
167+
- [Russian](/readme/ru.md)
168+
- [German](/readme/de.md)
169+
- [Chinese](/readme/zh-Hans.md)
170+
- [Korean](/readme/ko.md)
171+
- [Japanese](/readme/ja.md)
172+
- [Italian](/readme/it.md)
173+
- [Arabic](/readme/ar.md)
174+
- [Hindi](/readme/hi.md)
12175

13-
[Documentation](https://lingo.dev/go/docs)
176+
Don't see your language? Just add a new language code to the [`i18n.json`](./i18n.json) file and open a PR.

readme.md

Lines changed: 0 additions & 176 deletions
This file was deleted.

readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
packages/cli/README.md

readme/en.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
../readme.md
1+
../packages/cli/README.md

0 commit comments

Comments
 (0)