|Labs
Rezervovat demoPlatforma
React (Lingo Compiler)
Alpha
React (MCP)React (i18n)Legacy CLI (v0)
Zastaralé

Lingo.dev Compiler

  • Jak to funguje
  • Nastavení
  • Compiler: rychlý start

Frameworky

  • Integrace s Next.js
  • Vite + React

Průvodci

  • Přepínání jazyků
  • Automatická pluralizace
  • Ruční přepsání
  • Režimy sestavení
  • Struktura projektu
  • Poskytovatelé překladu
  • Vlastní resolvery jazyka
  • Vývojové nástroje

Reference

  • Osvědčené postupy
  • Configuration Reference
  • Řešení problémů
  • Průvodce migrací
  • Optimalizace
  • Výstupní formáty

Struktura projektu

Alpha

Compiler od Lingo.dev je v alpha verzi. Je nestabilní, není doporučený pro produkční nasazení a API se mezi jednotlivými releasy může měnit.

Compiler od Lingo.dev v kořenovém adresáři projektu vytváří a udržuje adresář .lingo/, který ukládá metadata překladů a cache. Když této struktuře porozumíte, snáz budete spravovat překlady ve správě verzí, ladit chybějící překlady a optimalizovat výkon buildů.

Adresář .lingo/#

Compiler tento adresář automaticky vytvoří při prvním buildu. Obsahuje všechna metadata překladů, která využívá build pipeline:

text
.lingo/
  metadata.json              # Translation cache and content hashes
  locale-resolver.server.ts  # Optional: custom server-side locale resolver
  locale-resolver.client.ts  # Optional: custom client-side locale resolver

metadata.json#

Jde o hlavní soubor v adresáři .lingo/. Ukládá:

  • Hashe obsahu – stabilní identifikátory založené na hashi pro každý přeložitelný řetězec
  • Překlady v cache – vygenerované překlady pro každou dvojici jazyků
  • Snapshoty zdrojového textu – podobu zdrojového textu v okamžiku překladu, používanou k detekci změn

Compiler tento soubor čte na začátku každého buildu. Řetězce se shodným hashem znovu použijí překlady z cache. Řetězce se změněným nebo chybějícím hashem se odešlou nakonfigurovanému poskytovateli překladu.

Commitněte do správy verzí

Adresář .lingo/metadata.json vždy commitněte do repozitáře. Produkční buildy v režimu cache-only čtou překlady výhradně z tohoto souboru. Pokud nebude commitnutý, produkční buildy selžou.

Na co myslet v .gitignore#

Do .gitignore rozhodně nepřidávejte .lingo/. Tento adresář by měl být sledovaný ve správě verzí. Typický soubor .gitignore pro projekt používající Compiler:

gitignore
# Do NOT ignore .lingo/ - it contains translation cache
node_modules/
dist/
.env

sourceRoot#

Volba sourceRoot určuje, který adresář bude Compiler procházet při hledání přeložitelných React komponent:

ts
{
  sourceRoot: "./app",  // Next.js App Router
  // or
  sourceRoot: "src",    // Vite + React
}

Compiler rekurzivně prochází všechny soubory .tsx, .ts, .jsx a .js v rámci sourceRoot a hledá v nich přeložitelný JSX obsah. Soubory mimo tento adresář nezpracovává.

Hodnota sourceRootCo se prochází
"./app"Všechny soubory v adresáři app/ (konvence Next.js)
"src"Všechny soubory v adresáři src/ (konvence Vite)
"."Všechny soubory v kořenovém adresáři projektu (užitečné pro monorepa se sdílenými balíčky)

Širší sourceRoot znamená procházení více souborů, a tedy delší build. Držte ho co nejužší. Pokud překlad potřebují jen některé soubory, použijte místo něj volbu useDirective.

Opt-in režim s „use i18n“#

Ve výchozím nastavení Compiler překládá všechen JSX text v sourceRoot. Pokud chcete přepnout do opt-in režimu, nastavte useDirective: true:

ts
{
  useDirective: true,
}

V opt-in režimu se zpracovávají jen soubory, které začínají direktivou 'use i18n':

tsx
'use i18n';

export function Welcome() {
  return <h1>Welcome to our app</h1>;
  // This text IS translated
}

Soubory bez této direktivy se přeskočí:

tsx
export function InternalAdmin() {
  return <h1>Admin Dashboard</h1>;
  // This text is NOT translated
}

Kdy použít opt-in režim#

ScénářDoporučený režim
Malá aplikace, kde se má překládat veškerý obsahVýchozí (useDirective: false)
Rozsáhlý kódový základ, kde jsou uživatelsky viditelné jen některé stránkyOpt-in (useDirective: true)
Monorepo se sdílenými interními i externími komponentamiOpt-in (useDirective: true)
Postupné zavádění – přidávání i18n do existující aplikaceOpt-in (useDirective: true)

lingoDir#

Volba lingoDir mění umístění adresáře s metadaty:

ts
{
  lingoDir: ".lingo",  // Default
  // or
  lingoDir: ".translations",  // Custom location
}

To se hodí, pokud je .lingo/ v konfliktu s existujícím adresářem ve vašem projektu.

Další kroky#

Režimy buildů
Jak se metadata.json používá v jednotlivých režimech
Vlastní resolvery jazyků
Přidejte soubory resolverů do .lingo/
Configuration Reference
Volby sourceRoot, lingoDir a useDirective
Osvědčené postupy
Tipy pro správu verzí a nastavení projektu

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

Max PrilutskiyMax Prilutskiy·Aktualizováno před 4 měsíci·3 min čtení