Cada comando sube desde el directorio actual hasta el .lingo/config.json más cercano. Con esa única regla basta para que la CLI funcione en un monorepo: tú decides dónde van los archivos de configuración.
Opción 1: una sola configuración en la raíz#
Si tus paquetes comparten un idioma de origen y los mismos idiomas de destino, coloca un .lingo/config.json en la raíz del repositorio y deja que sus patrones de files abarquen todos los paquetes:
{
"sourceLocale": "en",
"targetLocales": ["de", "fr"],
"files": [
{ "pattern": "apps/web/locales/en.json" },
{ "pattern": "packages/docs/content/en/**/*.md" }
]
}Un solo lingo push en la raíz lo cubre todo. El archivo de bloqueo también se guarda en la raíz.
Opción 2: una configuración por paquete#
Si los paquetes necesitan idiomas o motores diferentes, dale a cada uno su propio .lingo/config.json:
apps/web/.lingo/config.json # de, fr
apps/mobile/.lingo/config.json # de, fr, ja, koEjecuta los comandos desde dentro de un paquete (o haz cd hasta él) y la CLI encontrará la configuración de ese paquete:
cd apps/mobile && lingo pushCada paquete tiene su propio archivo de bloqueo y se vincula de forma independiente a su propio motor.
CI por paquete#
En CI, haz que el job de cada paquete apunte a su directorio con --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/mobileConsulta CI/CD.
Ejecución desde un subdirectorio
No hace falta que hagas cd manualmente hasta la raíz del paquete para ejecutar comandos en local: si lanzas lingo push desde cualquier punto dentro de un paquete, la CLI sube hasta la configuración de ese paquete y vuelve a escribir el archivo de bloqueo junto a ella.
