Lingo.dev automatizuje lokalizaci přímo v CI/CD. Máte dvě možnosti: GitHub App, která serverově reaguje na push a pull requesty, nebo CLI spuštěné ve vaší vlastní pipeline. Obě varianty udržují překlady synchronizované při každé změně a zpracovávají jen řetězce, které se skutečně změnily – takže lokalizace zůstává rychlá a nákladově efektivní i s růstem projektu.
Používáte GitHub? Začněte s App
GitHub App je na GitHubu doporučená volba. Stačí ji jednou nainstalovat a bude lokalizovat při každém pushi a pull requestu – bez runneru, bez CI secretu a bez lockfilu, o který byste se museli starat. Pokud GitHub nepoužíváte nebo chcete překlady spouštět společně s ostatními kroky CI, spusťte místo toho CLI ve vlastní pipeline.
Možnost 1: GitHub App (doporučeno)#
GitHub App je nejjednodušší způsob, jak spustit Průběžná lokalizace. Sleduje váš repozitář a překládá serverově, takže do pipeline nemusíte nic instalovat ani ukládat API klíč jako CI secret.
Nastavení je jednorázové:
- Nainstalujte Lingo.dev GitHub App do svého repozitáře.
- Commitněte
.lingo/config.jsons vašímorgId,engineId, zdrojovým jazykem, cílovými jazyky a soubory k překladu. Lokálně ho vygenerujte pomocílingo initalingo linka pak commitněte výsledek. - Pushněte změny.
Od té chvíle App za vás obslouží oba styly workflow:
- Při pushi do výchozí větve commitne překlady zpět do větve.
- U pull requestu přidá překlady do daného PR, abyste je mohli před sloučením zkontrolovat.
Protože App sleduje stav překladů serverově, ve vašem repozitáři nevznikají konflikty kvůli lockfilu a nemusíte zapojovat žádný ověřovací krok – jednoduše udržuje cílové jazyky synchronizované se zdrojem.
Možnost 2: CLI ve vlastní pipeline#
Pokud nejste na GitHubu nebo chcete lokalizaci spouštět jako samostatný krok vedle build a test jobů, spusťte CLI sami. Funguje v jakémkoli CI prostředí s Node.js 22 nebo novějším – GitHub Actions, GitLab CI, Bitbucket Pipelines i kdekoli jinde.
Postup je vždy stejný:
- Nainstalujte
@lingo.dev/cli. - Ověřte se pomocí API klíče přes proměnnou prostředí
LINGO_API_KEY. - Spusťte
lingo pushpro překlad změněných řetězců. - Commitněte výsledky nebo ze svého jobu otevřete pull request.
Uložte API klíč Lingo.dev jako CI secret a zpřístupněte ho jako LINGO_API_KEY. Commitnutý .lingo/config.json říká CLI, co má překládat, a commitnutý .lingo/lock.json (znovu vygenerovaný pomocí lingo push) sleduje stav, takže se zpracovávají jen změněné řetězce.
Minimální příklad pro GitHub Actions#
Tento workflow nainstaluje CLI, překládá při každém pushi do main a commitne výsledky zpět:
name: Localize
on:
push:
branches: [main]
permissions:
contents: write
jobs:
localize:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- run: npm install -g @lingo.dev/cli
- run: lingo push
env:
LINGO_API_KEY: ${{ secrets.LINGO_API_KEY }}
- name: Commit translations
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add .
git commit -m "chore: update translations" || echo "No changes"
git pushStejné dva řádky – npm install -g @lingo.dev/cli a potom lingo push – můžete vložit do bloku script: v GitLab CI nebo do kroku v Bitbucket Pipelines. Na těchto platformách nastavte LINGO_API_KEY jako maskovanou/chráněnou CI proměnnou.
První spuštění a nové jazyky
Při prvním spuštění v CI nebo kdykoli přidáte nový cílový jazyk použijte lingo push --backfill-missing, aby se všechny existující řetězce přeložily do nového jazyka. Potom už běžné lingo push překládá jen rozdíl.
Commit, nebo pull request?#
Ať zvolíte jakoukoli cestu, pořád máte pod kontrolou, jak se překlady dostanou do repozitáře:
| Přístup | Jak funguje | Ideální pro | Nevýhoda |
|---|---|---|---|
| Commit přímo | Překlady se commitnou do větve, ve které došlo ke změně | Malé týmy, bez zbytečného tření | Bez kroku pro kontrolu překladů |
| Pull request | Překlady se dostanou do PR ke kontrole před sloučením | Týmy, které překlady kontrolují | Vyžaduje schválení PR |
GitHub App vám obojí zajistí automaticky – při pushích do výchozí větve commituje a do otevřených PR přidává překlady. Ve vlastní pipeline je volba na vás: commitněte výsledky, jak je ukázáno výše, nebo nechte job místo pushnutí do větve otevřít pull request.
Ověření překladů před nasazením#
Abyste měli jistotu, že se nenasadí žádný nepřeložený obsah, přidejte lingo check jako kontrolní krok před nasazením. Vrátí nenulový stavový kód, pokud některé řetězce stále čekají na překlad:
- name: Verify translations
run: lingo checkGitHub App udržuje jazyky průběžně synchronizované, takže samostatný ověřovací krok dává smysl hlavně tehdy, když CLI spouštíte sami.
Monorepozitáře#
U monorepozitářů, kde má každý balíček vlastní .lingo/config.json, můžete běh omezit na konkrétní balíček předáním globu nebo spustit CLI z adresáře daného balíčku:
lingo push "apps/web/**"