@lingo.dev/cli odešle váš zdrojový obsah do lokalizační engine, počká, než engine vytvoří překlady, a zapíše výstupy zpět na disk. Nahrazuje původní workflow npx lingo.dev — stejný projekt, ale zásadně odlišná architektura.
Co se změnilo oproti původnímu CLI#
Původní CLI (npx lingo.dev run) extrahovalo řetězce, volalo LLM přímo z vašeho zařízení a zapsalo soubory v jednom synchronním kroku. Nové CLI je od základu asynchronní:
lingo pushnahraje zdroje do vašeho engine, spustí workflow na straně serveru a buď počká na dokončení, nebo se hned vrátí s ID běhulingo pullstáhne výstupy z posledního push — funguje, i když jste během překladu zavřeli terminál nebo stahujete z jiného zařízení- Lockfile (
.lingo/lock.json) sleduje poslední známou verzi každého cíle na serveru, takže detekce konfliktů upozorní na lokální úpravy dřív, než se přepíšou
Otevírá to dvě možnosti, které původní CLI nemělo: dlouhotrvající překlady bez visícího terminálu a stažení výsledků na jiném zařízení, než na kterém jste spustili push (nebo v CI).
Čekání na výsledky#
Dnes lingo push nahraje zdroje, spustí workflow na straně serveru, počká na jeho dokončení a zapíše výstupy — vše v jednom příkazu. Předání --wait (-w) tohle blokující chování výslovně určuje. K dokončenému běhu se navíc můžete později znovu připojit pomocí lingo pull.
lingo push # submit, wait, and write outputs (current default)
lingo push --wait # same thing, made explicit
lingo pull # later: re-attach to the most recent push and download its outputsChystaná změna: v připravovaném vydání se výchozí chování přepne na async. lingo push odešle běh a hned se ukončí; hotové překlady pak stáhnete pomocí lingo pull a --wait (-w) bude způsob, jak se vrátit k blokujícímu režimu v jednom příkazu.
--wait(-w) blokuje, dokud workflow neskončí, a v tom samém příkazu zapíše výstupy.lingo pullse znovu připojí k poslednímu push pro tento projekt a stáhne jeho výstupy — funguje i poté, co jste zavřeli terminál. Stav běhu se ukládá pro každé zařízení zvlášť v~/.lingo/runs/<project-hash>.json, takžepullnaváže na stejném zařízení.
Autentizace: oba příkazy čtou LINGO_API_KEY (nebo --api-key, případně relaci lingo login). V CI stačí nastavit LINGO_API_KEY a nic dalšího není potřeba.
Režimy push#
| Příkaz | Režim | Kdy |
|---|---|---|
lingo push | Inkrementální — porovná rozdíly mezi zdrojem a .lingo/lock.json, přeloží jen nové nebo změněné klíče do existujících cílů a zbytek zachová | Každé běžné spuštění / CI |
lingo push --backfill-missing | Bootstrap — doplní cílové SOUBORY, které ještě neexistují | První push nebo po přidání nového jazyka |
lingo push --force | Kompletní přepřeklad — přepíše všechny cíle (včetně ručních úprav); --yes/-y přeskočí potvrzovací výzvu | Zřídka (např. po změně glosáře/engine) |
--backfill-missing je příznak pro bootstrap. Provede omezený nový požadavek a doplní jen celé chybějící cílové soubory — NEPŘEKLÁDÁ nově přidané klíče do už přeložených souborů (běh nahlásí „already up-to-date“ a klíč přeskočí). Pro průběžné úpravy používejte běžné lingo push.
Ruční úpravy překladů#
Běžné lingo push zachovává ruční úpravy po jednotlivých klíčích:
- Upravíte cílový řetězec (jeho zdroj se nezměnil) → tento řetězec zůstane zachovaný; ostatní klíče se dál aktualizují.
- Změní se zdroj upraveného klíče → pro tento klíč se vygeneruje nový překlad, který ruční úpravu nahradí.
- Přidá se nový zdrojový klíč → přeloží se a přidá, i do souborů s ručními úpravami.
