Chaque commande remonte depuis le répertoire courant jusqu’au .lingo/config.json le plus proche. Cette seule règle suffit pour faire fonctionner le CLI dans un monorepo : il vous reste simplement à choisir où placer les fichiers de configuration.
Option 1 : une configuration à la racine#
Si vos packages partagent une langue source et des langues cibles, placez un seul .lingo/config.json à la racine du dépôt et laissez ses motifs files s’appliquer à chaque package :
{
"sourceLocale": "en",
"targetLocales": ["de", "fr"],
"files": [
{ "pattern": "apps/web/locales/en.json" },
{ "pattern": "packages/docs/content/en/**/*.md" }
]
}Un seul lingo push à la racine suffit pour tout couvrir. Le lockfile se trouve lui aussi à la racine.
Option 2 : une configuration par package#
Lorsque les packages ont besoin de langues ou de moteurs différents, attribuez à chacun son propre .lingo/config.json :
apps/web/.lingo/config.json # de, fr
apps/mobile/.lingo/config.json # de, fr, ja, koExécutez les commandes depuis l’intérieur d’un package (ou faites un cd) : le CLI trouvera automatiquement la configuration de ce package.
cd apps/mobile && lingo pushChaque package possède son propre lockfile et se relie indépendamment à son propre moteur.
CI par package#
Dans la CI, faites pointer le job de chaque package vers son répertoire avec --working-directory :
- 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/mobileConsultez CI/CD.
Exécution depuis un sous-répertoire
Pour les commandes locales, pas besoin de faire manuellement un cd jusqu’à la racine du package : exécuter lingo push depuis n’importe quel sous-dossier du package remonte jusqu’à sa configuration et réécrit le lockfile juste à côté.
