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 |
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řepínač --frozen ověří, že je přeložený veškerý obsah, aniž by generoval nové překlady. Pokud něco chybí, vrátí nenulový stavový kód:
npx lingo.dev@latest run --frozenPoužijte ho jako bránu nasazení, která zabrání vydání nepřeloženého obsahu.
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: 20
- run: npx lingo.dev@latest run --frozenŘešení merge konfliktů#
Merge konflikty vznikají, když se soubor i18n.lock 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 i18n.lockDokončete merge
git add .
git merge --continueZnovu vygenerujte lockfile
npx lingo.dev@latest lockfile --forceTím znovu sestavíte lockfile z aktuálního stavu zdrojových souborů, aniž by se spustilo generování nových překladů.
Řešení pomocí rebase#
Stejný postup funguje i při rebase – v každém kroku konfliktu smažte i18n.lock, pokračujte v rebase a na konci znovu vygenerujte lockfile:
git rebase <branch-name>
# On each conflict: rm i18n.lock && git add . && git rebase --continue
npx lingo.dev@latest lockfile --force