Cada comando percorre os diretórios para cima a partir do diretório atual até encontrar o .lingo/config.json mais próximo. Esta única regra basta para pôr o CLI a funcionar num monorepo — só tem de decidir onde ficam os ficheiros de configuração.
Opção 1: uma configuração na raiz#
Se os seus pacotes partilharem um idioma de origem e idiomas de destino, coloque um .lingo/config.json na raiz do repositório e deixe que os padrões de files abranjam cada pacote:
{
"sourceLocale": "en",
"targetLocales": ["de", "fr"],
"files": [
{ "pattern": "apps/web/locales/en.json" },
{ "pattern": "packages/docs/content/en/**/*.md" }
]
}Um único lingo push na raiz cobre tudo. O ficheiro de bloqueio também fica na raiz.
Opção 2: uma configuração por pacote#
Quando os pacotes precisarem de idiomas ou motores diferentes, dê a cada um o seu próprio .lingo/config.json:
apps/web/.lingo/config.json # de, fr
apps/mobile/.lingo/config.json # de, fr, ja, koExecute os comandos dentro de um pacote (ou cd para lá) — o CLI encontra a configuração desse pacote:
cd apps/mobile && lingo pushCada pacote tem o seu próprio ficheiro de bloqueio e liga-se ao seu próprio motor de forma independente.
CI por pacote#
No CI, aponte o job de cada pacote para o respetivo diretório com --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/mobileConsulte CI/CD.
Executar a partir de um subdiretório
Não precisa de cd manualmente até à raiz do pacote para executar comandos locais — ao executar lingo push a partir de qualquer ponto dentro de um pacote, o CLI sobe até à configuração desse pacote e escreve o ficheiro de bloqueio ao lado dela.
