Pokročilé postupy pro lokalizaci v CI/CD – výběr workflow, kontrola úplnosti překladů a řešení merge konfliktů.
Jak vybrat workflow#
Čtyři workflow pokrývají většinu týmových setupů. Každé z nich přináší jiné kompromisy v oblasti automatizace, nároků na kontrolu a čistoty práce s větvemi.
| Workflow | Nejvhodnější pro | Nevýhoda |
|---|---|---|
| Commit do main | Malé týmy, aktualizace bez zbytečných překážek | Bez kroku kontroly překladů |
| PR z main | Týmy, které chtějí překlady kontrolovat | Vyžaduje ruční schválení PR |
| Commit do feature branche | Dlouho žijící feature branche | Commit y s překlady zůstávají v historii branche |
| PR z feature branche | Maximální kontrola nad každou feature | Je potřeba spravovat více PR pro každou feature |
Na GitHubu většinu těchto scénářů obslouží na serverové straně Lingo.dev GitHub App — reaguje na push a PR, zapisuje překlady zpět do repozitáře a nepotřebuje runner ani secret. Po CLI postupech níže sáhněte ve chvíli, kdy lokalizaci provozujete ve vlastním pipeline.
Pokud si nejste jistí, začněte s „Commit do main“. Je to nejjednodušší workflow a úplně eliminuje merge konflikty, protože mezi větvemi nevzniká divergence.
Kontrola úplnosti překladů#
Příkaz lingo check ověří, že je přeložený veškerý obsah, aniž by vytvářel nové překlady. Pokud něco chybí, skončí s nenulovým návratovým kódem:
lingo checkPoužijte to jako kontrolu před nasazením, abyste zabránili vydání nepřeloženého obsahu. CLI nainstalujete pomocí npm install -g @lingo.dev/cli (Node 22+) a runner autentizujete proměnnou prostředí LINGO_API_KEY.
name: Check translations
on: [push, pull_request]
jobs:
check:
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 check
env:
LINGO_API_KEY: ${{ secrets.LINGO_API_KEY }}Řešení merge konfliktů#
Merge konflikty vznikají, když se soubor .lingo/lock.json mezi větvemi rozchází – typicky když se překlady aktualizují nezávisle v různých větvích.
Jak jim předejít#
Když budete commity s překlady zapisovat přímo do main (místo používání feature branchí pro překlady), konflikty v lockfile úplně zmizí.
Řešení pomocí merge#
Spusťte merge
git merge <branch-name>Smažte konfliktní lockfile
rm .lingo/lock.jsonDokončete merge
git add .
git merge --continueZnovu vygenerujte lockfile
lingo pushSpuštění lingo push v rámci běžné synchronizace znovu vygeneruje .lingo/lock.json podle aktuálního stavu zdrojových souborů.
Řešení pomocí rebase#
Stejný postup funguje i při rebase — v každém kroku konfliktu smažte .lingo/lock.json, pokračujte v rebase a nakonec spusťte lingo push, čímž lockfile znovu vygenerujete:
git rebase <branch-name>
# On each conflict: rm .lingo/lock.json && git add . && git rebase --continue
lingo push