Jeder Befehl sucht vom aktuellen Verzeichnis aus nach oben bis zur nächstgelegenen .lingo/config.json. Diese eine Regel reicht aus, damit die CLI in einem Monorepo funktioniert – du musst nur festlegen, wo die Konfigurationsdateien liegen.
Option 1: eine Konfiguration im Root-Verzeichnis#
Wenn deine Pakete dieselbe Quellsprache und dieselben Zielsprachen verwenden, lege eine .lingo/config.json im Root des Repos ab und lass ihre files-Muster bis in jedes Paket greifen:
{
"sourceLocale": "en",
"targetLocales": ["de", "fr"],
"files": [
{ "pattern": "apps/web/locales/en.json" },
{ "pattern": "packages/docs/content/en/**/*.md" }
]
}Eine einzige lingo push im Root deckt alles ab. Die Lockfile liegt ebenfalls dort.
Option 2: eine Konfiguration pro Paket#
Wenn Pakete unterschiedliche Sprachen oder Engines benötigen, gib jedem seine eigene .lingo/config.json:
apps/web/.lingo/config.json # de, fr
apps/mobile/.lingo/config.json # de, fr, ja, koFühre Befehle innerhalb eines Pakets aus (oder cd in das Paketverzeichnis) – die CLI findet die Konfiguration dieses Pakets:
cd apps/mobile && lingo pushJedes Paket hat seine eigene Lockfile und ist unabhängig mit seiner eigenen Engine verknüpft.
CI pro Paket#
In CI verweist du im Job jedes Pakets mit --working-directory auf dessen Verzeichnis:
- run: npx @lingo.dev/cli@latest ci --step push --working-directory apps/web
- run: npx @lingo.dev/cli@latest ci --step push --working-directory apps/mobileSiehe CI/CD.
Ausführung aus einem Unterverzeichnis
Für lokale Befehle musst du nicht per Hand mit cd in das Paket-Root wechseln – wenn du lingo push irgendwo innerhalb eines Pakets ausführst, sucht die CLI nach oben bis zur Konfiguration dieses Pakets und schreibt die Lockfile wieder direkt daneben.
