|
Dokumentace
Rezervovat demoPlatforma
PlatformaMCPCLI
APIWorkflows
NávodyChangelog

Přehled

  • @lingo.dev/cli

Začínáme

  • Rychlý start
  • Konfigurace
  • Příklady

Reference

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

Konfigurace

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

Návody

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

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

Ukázkové projekty

Každý příklad níže je skutečný repozitář s committed .lingo/config.json a už hotovými překlady, takže si můžete projít konfiguraci vedle výstupu, který vytvořila. Většinu tvoří spustitelné aplikace; pár z nich slouží jen k samostatné ukázce formátu souboru. Jeden si naklonujte nebo fork-něte, spusťte lingo link, připojte vlastní engine a pushněte změny.

Nejdřív si vyberte přístup#

S CLI můžete lokalizovat dvěma způsoby — a od toho se odvíjí, které ukázky jsou pro vás relevantní.

Přeložte soubory, které už máte. Váš framework drží překlady ve vlastním formátu — Rails YAML, Android XML, Laravel PHP, ARB, Markdown — a CLI tyto soubory přeloží přímo na místě. V kódu nemusíte nic měnit. Takhle funguje devět z jedenácti ukázek níže.

Pište bez klíčů. Řetězce obalíte do l.text(...) přímo tam, kde se používají, lingo extract vám vygeneruje katalog s hashovanými klíči a nemusíte žádné překladové klíče pojmenovávat ani spravovat. Znamená to krok navíc při buildu a runtime balíček — a právě to ukazují dvě ukázky webových aplikací.

Mobilní aplikace#

PříkladFormátProč zrovna tento
iOSxcode-xcstringsString Catalog obsahuje všechny jazyky, takže cílová cesta je stejná jako zdrojová.
AndroidandroidJako zdroj slouží samotné values/ a vlastní kvalifikátory Androidu (values-pt-rBR/)
FlutterflutterMetadata @ a zástupné symboly ICU zůstávají zachované, @@locale se přepisuje po souborech

Webové aplikace#

Dva příklady bez klíčů. V obou se řetězce obalují pomocí l.text(...) a katalog se generuje pomocí lingo extract, takže prostřední sloupec označuje runtime balíček, ne formát souboru.

PříkladBalíčekProč zrovna tento
React + Vite@lingo.dev/reactTvorba bez klíčů; generované deklarace zužují l.text() na extrahované řetězce
Next.js@lingo.dev/react-nextTvorba bez klíčů, routování podle jazyka, hreflang a přepínač. Pages Router

hreflang v produkci

LingoHead skládá URL adresy hreflang z propu baseUrl, který je ve výchozím nastavení prázdný, takže tagy jsou bez další konfigurace relativní. Vyhledávače ale očekávají absolutní URL adresy — než se na ně začnete spoléhat, předejte origin svého webu (<LingoHead baseUrl="https://example.com" />).

Obsah a specifikace#

PříkladFormátProč zrovna tento
Markdown docsmd, mdxPrimárně souvislý text, s volitelně zahrnutými poli frontmatteru a props v MDX
Markdocmarkdoc, jsonObsah pro Next.js i texty rozhraní v jednom pushi — tři položky, každá s jinými možnostmi
OpenAPIyaml-openapiPouze shrnutí a popisy; cesty, ID operací a enumy zůstávají beze změny

Katalogy frameworků#

PříkladFormátProč zrovna tento
Railsyaml-root-keyJazyk je kořenový klíč v YAML, takže se přepisuje i samotný kořenový klíč
Laravelphp, poLaravel katalogy plus gettext soubor; zástupné symboly :name zůstávají v obou zachované
Moduly TypeScripttypescriptKatalogy jako moduly TypeScript místo JSON. Jen formát — žádná aplikace je nespotřebovává

Katalogy v TypeScriptu potřebují default export

Formát typescript čte default export — export default { … }, s as const i bez něj. Pojmenovaný export nevytvoří žádný přeložitelný obsah a běh se dokončí po doslovném zkopírování zdroje. Pokud tedy push hlásí lokalizované soubory, ale prakticky nulový počet výstupních tokenů, nejdřív zkontrolujte tvar exportu.

Jak některý z těchto příkladů použít#

bash
npm install -g @lingo.dev/cli
lingo login
lingo link          # writes your own orgId and engineId into .lingo/config.json
lingo push --wait

Žádný z příkladů necommituje orgId ani engineId — díky tomu váš fork neposílá push přes cizí engine. lingo link doplní obojí lokálně.

Když chcete GitHub App místo CLI

GitHub App čte engineId z .lingo/config.json commitnutého ve vašem repozitáři — organizaci si odvodí přímo z instalace aplikace, ale engine v souboru být musí. Po forknutí spusťte lingo link a před instalací aplikace commitněte aktualizovanou konfiguraci.

Ne každý formát tu má ukázku#

Těchto jedenáct pokrývá frameworky, na které se lidé ptají nejčastěji, ale CLI překládá osmnáct formátů. xliff, srt, Xcode .strings a .stringsdict, obecné yaml i samostatné JSON/JSONC fungují i bez repozitáře tady — úplný seznam a konfiguraci, kterou každý z nich potřebuje, najdete v Formats.

Další kroky#

Formáty
Všech osmnáct formátů, které CLI překládá, včetně těch, které tu nemají ukázku
Konfigurace
Kompletní Reference pro .lingo/config.json
Rychlý start
Instalace, ověření a první push během pár minut
GitHub App
Překlad na serveru při každém pushi

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

Mike ShulgaMike Shulga·Aktualizováno přibližně před 5 hodinami·3 min čtení