i18n.lock

Aktualizováno: minulé čtvrtletí · 2 min čtení

Zastaralé

Tato dokumentace pokrývá starší CLI (v0). Aktuální CLI je v1. Zobrazit aktuální dokumentaci CLI

i18n.lock je lockfile, který ukládá SHA-256 otisky vašeho zdrojového obsahu. Lingo.dev CLI tyto otisky při každém spuštění porovnává, aby zjistilo, které řetězce jsou nové nebo upravené — jen ty pak vstoupí do překladového pipeline. Vše ostatní se přeskočí.

Struktura#

Lockfile používá formát YAML:

yaml
version: 1
checksums:
  a07974ea09011daa56f9df706530e442:
    title: f8692d39317193acf0e2e47172703c46
    description: g9703e40428204bdf1f3f58283814d57
PolePopis
versionVerze schématu lockfile.
checksumsMapa otisků obsahu. Každá položka mapuje hash zdrojového obsahu na hash klíče.

Struktura se dvěma hashi (hash obsahu + hash klíče) umožňuje detekci přejmenování klíčů — CLI zachová existující překlady i v případě, že se klíč přejmenuje, ale jeho obsah zůstane stejný.

Workflow#

První spuštění — vytvoří lockfile s otisky veškerého zdrojového obsahu:

bash
npx lingo.dev@latest run
# Creates i18n.lock

Další spuštění — přeloží jen změny:

bash
npx lingo.dev@latest run
# Compares against i18n.lock, translates only changes

Vynucený opakovaný překlad — obejde lockfile a znovu přeloží vše:

bash
npx lingo.dev@latest run --force

Znovuvytvoření lockfile — znovu sestaví lockfile podle aktuálního stavu vašich zdrojových souborů:

bash
npx lingo.dev@latest lockfile --force

Pomocí lockfile --force resetujete lockfile při řešení konfliktů při slučování. Tento příkaz můžete bezpečně spustit kdykoli.

Frozen verification — selže, pokud nějaký obsah vyžaduje překlad (navrženo pro CI/CD):

bash
npx lingo.dev@latest run --frozen

Deduplikace#

Při slučování větví se v YAML lockfile můžou nahromadit duplicitní položky. CLI je při každém načtení automaticky deduplikuje — duplicitní klíče v rámci stejného bloku kontrolního součtu vyřeší tak, že ponechá poslední výskyt. Pokud se duplicity odstraní, CLI jejich počet zapíše do log.

Deduplikace se spouští při všech příkazech, které čtou lockfile: run, status, lockfile a dalších.

Správa verzí#

i18n.lock musí být commitnutý do vašeho repozitáře spolu se soubory jazyk. Právě tento mechanismus umožňuje inkrementální překlad — bez něj by každé spuštění znovu přeložilo celý projekt.

Další kroky#