Monorepos

Mis à jour le : il y a 4 jours · 1 min de lecture

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 :

json
{
  "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 :

text
apps/web/.lingo/config.json      # de, fr
apps/mobile/.lingo/config.json   # de, fr, ja, ko

Exécutez les commandes depuis l’intérieur d’un package (ou faites un cd) : le CLI trouvera automatiquement la configuration de ce package.

bash
cd apps/mobile && lingo push

Chaque package possède son propre lockfile et se relie indépendamment à son propre moteur.

CI par package#

Dans CI, définissez le working-directory de chaque étape sur le package afin que lingo push puisse trouver la configuration de ce package :

yaml
- run: npx @lingo.dev/cli@latest push --wait
  working-directory: apps/web
- run: npx @lingo.dev/cli@latest push --wait
  working-directory: apps/mobile

--wait laisse chaque étape s’exécuter jusqu’à ce que les traductions soient écrites, afin qu’une étape ultérieure puisse les valider par commit. Consultez 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é.