|
Dokumentace
Rezervovat demoPlatforma
PlatformaMCPCLI
APIWorkflows
NávodyChangelog

Přehled

  • @lingo.dev/cli

Začínáme

  • Rychlý start
  • Konfigurace

Reference

  • lingo push
  • lingo pull
  • Další příkazy
  • lingo purge

Konfigurace

  • Ovládání klíčů
  • Formáty
  • Jazyky

Návody

  • Přidání jazyka
  • Stávající překlady
  • Překlad znovu
  • Běhy, stav a obnova
  • CI/CD
  • Monorepa
  • Velké projekty

Průvodci

  • Poznámky pro překladatele

Hledáte starší CLI (v0)? Zobrazit dokumentaci k legacy CLI

Konfigurace

Trvalý stav CLI se ukládá na třech místech: dvě jsou uvnitř projektu (commitovaná), jedno ve vašem domovském adresáři (pro každý stroj zvlášť).

.lingo/config.json — commitovaný#

Vytváří ho lingo init (sekce lokalizace) a lingo link (propojení org/engine). Commitněte ho.

json
{
  "orgId": "org_a8c...",
  "engineId": "eng_b9d...",
  "sourceLocale": "en",
  "targetLocales": ["de", "fr", "es"],
  "files": [
    { "pattern": "locales/en.json" },
    { "pattern": "docs/en/**/*.md" }
  ]
}

Přehled polí#

PolepovinnéPopis
orgIdano (po link)Organizace, která vlastní engine.
engineIdano (po link)Engine, který zajišťuje překlad. Obsahuje konfiguraci modelu, glosář a hlas značky.
sourceLocaleanoKód jazyka vašich zdrojových souborů (např. "en"). Zdrojové soubory se čtou, nikdy se do nich nezapisuje.
targetLocalesanoJazyky, do kterých se má překládat. Výstupy se zapisují do stejného adresáře jako zdrojové soubory, přičemž se v patternu nahradí kód jazyka (locales/en.json → locales/de.json).
filesanoPole zdrojových patternů. pattern je glob (lomítka vpřed, rekurze **, zástupné znaky *). CLI při určování cílových cest nahrazuje kódy jazyků.
githubneNastavení pro GitHub App — samotné CLI je ignoruje.

Mapování patternů na cíle#

CLI v patternu nahradí zdrojový jazyk každým cílovým jazykem:

  • locales/en.json → locales/de.json, locales/fr.json, ...
  • docs/en/**/*.md → docs/de/**/*.md (zrcadlený podstrom)
  • copy/en/marketing.md → copy/de/marketing.md

Pokud vaše struktura zdrojů neobsahuje v cestě kód jazyka, upravte ji. CLI bez něj nedokáže určit, kam mají cílové soubory patřit.

.lingo/lock.json — commitovaný#

Sleduje hash posledního známého stavu na serveru u každého zdrojového i cílového souboru. Používá se ke dvěma věcem:

  1. lingo push podle něj rozhoduje, jestli se zdroj od posledního úspěšného běhu změnil. Nezměněné soubory se přeskočí bez další komunikace se serverem.
  2. lingo pull ho používá k odhalení lokálních úprav cílových souborů — pokud se hash lokálního cíle liší od toho, co uvádí lockfile, pull by přepsal místní práci, takže pull skončí chybou, pokud nepředáte --force.

Hashe zdrojů se do lockfile commitují až po plně úspěšném pushi, takže napůl dokončený běh můžete zopakovat bez ručního úklidu.

Commitujte lockfile spolu s přeloženými výstupy. Ke konfliktům přistupujte stejně jako ke konfliktům v package-lock.json: znovu je vygenerujte spuštěním lingo push.

~/.lingo/runs/<hash>.json — pro konkrétní stroj#

Ukládá naposledy odeslané push, aby lingo pull věděl, z kterého běhu má stáhnout výstupy — funguje i po zavření terminálu a napříč stroji, které sdílejí stejný checkout.

json
{
  "runId": "run_a8c...",
  "engineId": "eng_b9d...",
  "organizationId": "org_a8c...",
  "sourceLocale": "en",
  "createdAt": "2026-05-22T14:32:01.000Z"
}

Hash názvu souboru se odvozuje z absolutní cesty ke kořeni projektu, ne z obsahu souborů, takže:

  • Úprava en.json soubor nezneplatní — stejné pull běh stále najde.
  • Dva checkouty stejného repozitáře na stejném stroji dostanou odlišné soubory (mají různé absolutní cesty).
  • Přesun projektu (mv ~/Projects/foo ~/Projects/bar) mezi push a pull zneplatní vyhledání, protože se hash změní. JSON ale stále zůstane v ~/.lingo/runs/, pokud potřebujete ID běhu obnovit ručně.

Tento soubor je stav konkrétního stroje, ne stav projektu — není v gitignore, protože je úplně mimo repozitář.

Přihlašovací údaje — ~/.lingo/auth.json#

Ukládá je lingo login (tok OTP ukládá relaci Supabase; tok --api-key ukládá klíč). Necommitují se a nečte je nic jiného než samotné CLI.

bash
lingo logout         # clear credentials
lingo whoami         # check what's stored and which org/engine the cwd resolves to

Vyhodnocování z podadresářů#

Každý příkaz postupuje od cwd směrem nahoru a hledá nejbližší .lingo/config.json. Když spustíte lingo push z src/components/, zapíše lockfile zpět do kořene projektu, ne nový .lingo/ do components/. Nemusíte se tedy před každým příkazem vracet přes cd do kořene.

Byla tato stránka užitečná?

Max PrilutskiyMax Prilutskiy·Aktualizováno přibližně před 1 měsícem·3 min čtení