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

Lingo.dev CLI

  • Jak to funguje
  • Nastavení
  • Rychlý start
  • Monorepa

Konfigurace

  • Podporované formáty
  • i18n.json
  • i18n.lock
  • Podporované jazyky

Funkce

  • Stávající překlady
  • Přidání jazyků
  • Přepsání
  • Poznámky pro překladatele
  • Překladové klíče
  • Přejmenování klíčů
  • Uzamykání klíčů
  • Ignorování klíčů
  • Zachování klíčů
  • Extrakce klíčů pomocí AI

Výkon

  • Velké projekty
  • Paralelní zpracování
  • Odhad nákladů

Opětovný překlad

  • Automatický opětovný překlad
  • Opětovný překlad
  • Odstranění překladů

Tato dokumentace se týká legacy CLI (v0) a je zastaralá. Aktuální CLI je v1. Zobrazit dokumentaci k aktuálnímu CLI

Podporované formáty

Lingo.dev CLI používá typy bucketů k parsování a překladu různých formátů souborů. Každý typ bucketu je samostatný parser navržený pro konkrétní formát. V souboru i18n.json si nastavte jeden nebo více bucketů a určete, které soubory má CLI překládat.

Typy bucketů#

Typ bucketuFormátVýstupní režim[locale] povinné
jsonSoubory JSONSamostatné soubory pro každý jazykAno
json5Soubory JSON5Samostatné soubory pro každý jazykAno
jsoncSoubory JSONC (s komentáři)Samostatné soubory pro každý jazykAno
json-dictionaryJSON slovník (ploché klíče a hodnoty)Samostatné soubory pro každý jazykAno
yamlSoubory YAMLSamostatné soubory pro každý jazykAno
yaml-root-keyYAML s kořenovými klíči jazykůUpravuje zdrojový souborNe
markdownSoubory MarkdownSamostatné soubory pro každý jazykAno
mdxSoubory MDXSamostatné soubory pro každý jazykAno
markdocSoubory MarkdocSamostatné soubory pro každý jazykAno
htmlSoubory HTMLSamostatné soubory pro každý jazykAno
mjmlE-mailové šablony MJMLSamostatné soubory pro každý jazykAno
androidZdroje Android XMLSamostatné soubory pro každý jazykAno
xcode-stringsSoubory Xcode .stringsSamostatné soubory pro každý jazykAno
xcode-stringsdictSoubory Xcode .stringsdictSamostatné soubory pro každý jazykAno
xcode-xcstringsKatalogy Xcode .xcstringsUpravuje zdrojový souborNe
flutterSoubory Flutter ARBSamostatné soubory pro každý jazykAno
poSoubory GNU gettext POSamostatné soubory pro každý jazykAno
propertiesSoubory Java .propertiesSamostatné soubory pro každý jazykAno
csvSoubory CSVUpravuje zdrojový souborNe
csv-per-localeSoubory CSV (po jednom pro každý jazyk)Samostatné soubory pro každý jazykAno
xmlObecné soubory XMLSamostatné soubory pro každý jazykAno
xliffSoubory XLIFFSamostatné soubory pro každý jazykAno
srtSoubory titulků SRTSamostatné soubory pro každý jazykAno
vttSoubory titulků VTTSamostatné soubory pro každý jazykAno
phpLokalizační pole PHPSamostatné soubory pro každý jazykAno
typescriptSoubory TypeScriptSamostatné soubory pro každý jazykAno
vue-jsonJSON bloky Vue i18nSamostatné soubory pro každý jazykAno
txtProsté textové souborySamostatné soubory pro každý jazykAno

Výstupní režimy#

Buckety fungují v jednom ze dvou výstupních režimů:

Samostatné soubory pro každý jazyk — CLI vytvoří samostatný soubor pro každý cílový jazyk. Vzory include musí obsahovat zástupný symbol [locale]:

json
{
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"]
    }
  }
}

Tím vzniknou locales/en.json, locales/es.json, locales/fr.json atd.

Upravuje zdrojový soubor — CLI zapíše překlady zpět do stejného souboru, který obsahuje zdrojový obsah. Zástupný symbol [locale] se nepoužívá:

json
{
  "buckets": {
    "csv": {
      "include": ["translations.csv"]
    }
  }
}

Soubory CSV obvykle ukládají všechny jazyky do sloupců v rámci jednoho souboru. Podobně fungují i katalogy Xcode .xcstrings a YAML s kořenovými klíči.

Příklady konfigurace#

Webová aplikace s JSON#

json
{
  "buckets": {
    "json": {
      "include": ["src/locales/[locale].json"],
      "lockedKeys": ["brand/name"]
    }
  }
}

Dokumentační web s Markdown#

json
{
  "buckets": {
    "markdown": {
      "include": ["docs/[locale]/*.md"],
      "exclude": ["docs/[locale]/drafts/*.md"]
    }
  }
}

Mobilní aplikace (iOS + Android)#

json
{
  "buckets": {
    "xcode-xcstrings": {
      "include": ["ios/Localizable.xcstrings"]
    },
    "android": {
      "include": ["android/app/src/main/res/values-[locale]/strings.xml"]
    }
  }
}

Monorepo s více formáty#

json
{
  "buckets": {
    "json": {
      "include": ["apps/web/locales/[locale].json"]
    },
    "mdx": {
      "include": ["packages/docs/content/[locale]/*.mdx"]
    },
    "flutter": {
      "include": ["apps/mobile/lib/l10n/app_[locale].arb"]
    }
  }
}

Funkce specifické pro buckety#

Některé buckety podporují i další funkce nad rámec vzorů include/exclude:

FunkcePodporované bucketyPopis
Uzamykání klíčůFormáty klíč–hodnota (JSON, YAML atd.)Zkopíruje zdrojové hodnoty bez překladu
Ignorování klíčůFormáty klíč–hodnotaÚplně vynechá klíče z cílových souborů
Zachování klíčůFormáty klíč–hodnotaInicializuje jednou a pak chrání před aktualizacemi
Poznámky pro překladateleJSONC, XCStringsPomáhají dodat kontext pomocí komentářů a zlepšit překlad

Pravidla pro vzory include#

  • Vzory jsou relativní k umístění souboru i18n.json
  • Použijte [locale] jako zástupný symbol pro kódy jazyků (povinné pro buckety se „samostatnými soubory“)
  • Hvězdička (*) odpovídá libovolnému názvu souboru: locales/[locale]/*.json
  • Rekurzivní vzory (**) odpovídají souborům v libovolné hloubce: src/**/[locale].json, config/locales/**/[locale].yml. Když vzor používá **, node_modules, .git, dist, build, .next a .turbo jsou ve výchozím nastavení vyloučené — podle potřeby nad ně přidejte vlastní položky exclude (vyžaduje CLI 0.135.0+)
  • Přípony souborů nemají na parsování vliv — parser určuje typ bucketu

Další kroky#

i18n.json
Úplná konfigurační Reference
Key Locking
Chraňte konkrétní klíče před překladem
Existující překlady
Přidejte CLI do projektu, který už překlady má
Nastavení
Nainstalujte a nastavte CLI

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

Max PrilutskiyMax Prilutskiy·Aktualizováno před 5 dny·4 min čtení