Překlad znovu

Max PrilutskiyCEO a spoluzakladatelUpdated před 16 dny · 2 min read

lingo push překládá jen to, co se změnilo: každý zdroj porovná pomocí hashe s lockfile a vše, co se shoduje, přeskočí. To je správné výchozí nastavení, ale někdy potřebujete znovu přeložit obsah, jehož zdrojový text zůstal stejný — třeba po změně modelu engine, aktualizaci jeho pravidel nebo glosáře, nebo při řešení problému s kvalitou.

Jsou na to tři způsoby a liší se cenou: --key pro jednotlivé řetězce, scoped --force push pro celé soubory nebo purge následované běžným pushem pro celý jazyk. Sáhněte po nejužší variantě, která pokryje to, co chcete udělat znovu.

Znovu přeložit konkrétní klíče#

--key znovu přeloží jen klíče, které zadáte, sloučí je s existujícím překladem a všechny ostatní klíče ponechá bajtově beze změny. Ignoruje rozdíly ve zdroji, takže znovu zpracuje i řetězec, jehož anglická verze se vůbec nezměnila.

bash
lingo push --key auth.login

Pro více klíčů flag zopakujte:

bash
lingo push --key auth.login --key billing.plan

Vzor může označovat klíč přesně, jako prefix končící na hranici ., /, - nebo [, nebo jako glob. Takže auth.login označí i auth.login.title, ale nikdy auth.login_url; samotné auth označí celý podstrom auth, ale nikdy authority. Globy dejte do uvozovek, jinak je shell rozbalí dřív, než je uvidí CLI:

bash
lingo push --key "auth.*"

Tohle je zdaleka nejlevnější možnost — platíte jen za klíče, které jste zadali, a nic navíc. Vyžaduje existující překlad, do kterého se dá sloučit, takže jazyk, který jste ještě nikdy nepřekládali, se přeskočí a zobrazí se zpráva odkazující na --backfill-missing. Některé formáty rozsah klíčů vůbec nepodporují — Formáty uvádějí které a proč.

Úplný popis chování, včetně toho, co se stane s klíči, které jste nezadali, najdete v lingo push.

Vynucení cíleného push#

--force znovu přeloží každý odpovídající cíl bez ohledu na existující překlady a server-side cache. Omezte ho scopem, pokud skutečně nemyslíte celý projekt — samotné lingo push --force pokryje všechny nakonfigurované vzory a v cestě stojí už jen potvrzovací výzva.

Jeden soubor#

bash
lingo push content/en/landing.mdx --force

Podstrom#

bash
lingo push 'content/en/**/*.md' --force

Vše#

bash
lingo push --backfill-missing --force --yes

--force se před přepsáním zeptá na potvrzení; pokud chcete výzvu přeskočit, předejte --yes (CI). Úplný přehled parametrů najdete v lingo push.

Znovu přeložit jeden jazyk#

push nemá příznak pro jednotlivé jazyky. Pokud chcete znovu vygenerovat jen jeden jazyk, smažte jeho soubory a doplňte je zpět:

bash
lingo purge --locale fr
lingo push --backfill-missing

purge odstraní cíle fr; --backfill-missing pak znovu vygeneruje jen to, co chybí — ostatní jazyky zůstanou beze změny. Je to také levnější než --force, protože vše kromě fr zůstane cache hit. Viz Purge.

Než začnete utrácet, udělejte si odhad#

Jakýkoli push přijímá --estimate, který spočítá cenu běhu a skončí bez překladu:

bash
lingo push 'content/en/**/*.md' --force --estimate

Dá se kombinovat i s --key, takže si můžete před spuštěním nacenit scope klíčů:

bash
lingo push --key auth.login --estimate

Odhady jsou heuristické, ne závazná nabídka — konečná cena se může lišit.

Kdy překládat znovu#

SituaceCo spustit
Zdrojový text se změnilNic — běžný lingo push to zachytí
Pár řetězců, se kterými nejste spokojenílingo push --key auth.login --key billing.plan
Přepnuli jste model enginelingo push <scope> --force
Aktualizovaná pravidla / glosářlingo push --key <affected keys> nebo lingo push <scope> --force
Nízká kvalita v jednom jazycelingo purge --locale <code> a potom lingo push --backfill-missing
Začínáte úplně od nulylingo push --backfill-missing --force --yes