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říklad | Formát | Proč zrovna tento |
|---|---|---|
| iOS | xcode-xcstrings | String Catalog obsahuje všechny jazyky, takže cílová cesta je stejná jako zdrojová. |
| Android | android | Jako zdroj slouží samotné values/ a vlastní kvalifikátory Androidu (values-pt-rBR/) |
| Flutter | flutter | Metadata @ 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říklad | Balíček | Proč zrovna tento |
|---|---|---|
| React + Vite | @lingo.dev/react | Tvorba bez klíčů; generované deklarace zužují l.text() na extrahované řetězce |
| Next.js | @lingo.dev/react-next | Tvorba 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říklad | Formát | Proč zrovna tento |
|---|---|---|
| Markdown docs | md, mdx | Primárně souvislý text, s volitelně zahrnutými poli frontmatteru a props v MDX |
| Markdoc | markdoc, json | Obsah pro Next.js i texty rozhraní v jednom pushi — tři položky, každá s jinými možnostmi |
| OpenAPI | yaml-openapi | Pouze shrnutí a popisy; cesty, ID operací a enumy zůstávají beze změny |
Katalogy frameworků#
| Příklad | Formát | Proč zrovna tento |
|---|---|---|
| Rails | yaml-root-key | Jazyk je kořenový klíč v YAML, takže se přepisuje i samotný kořenový klíč |
| Laravel | php, po | Laravel katalogy plus gettext soubor; zástupné symboly :name zůstávají v obou zachované |
| Moduly TypeScript | typescript | Katalogy 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#
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.
