Verifique traduções a partir de Make ou scripts npm
Se seu projeto já tem um make test ou um npm test, adicione a verificação de tradução lá. kaeris check retorna 1 quando um placeholder ou chave está quebrado, fazendo o alvo inteiro falhar. É offline e gratuito: sem chave de API, sem conta.
KAERIS traduziu esta página e verificou cada linha traduzindo-a de volta. Um falante nativo ainda não revisou. Original em inglês
A receita
Makefile
Instale o verificador uma vez com pip install kaeris. A linha da receita começa com um tab. Fazer test depender de i18n-check executa a verificação antes dos testes.
.PHONY: i18n-check test i18n-check: kaeris check --source locales/en.json --langs de,fr --ci test: i18n-check ./run-tests.sh
scripts do npm
O script apenas chama kaeris do seu PATH, então o verificador é o pacote Python do pip install kaeris. pretest roda antes do test e o interrompe se a verificação falhar.
{
"scripts": {
"i18n:check": "kaeris check --source locales/en.json --langs de,fr --ci",
"pretest": "npm run i18n:check",
"test": "jest"
}
}
O que ele imprime, em execuções reais
Saída do kaeris 0.2.35, capturada em 27 de outubro de 2026. A última linha de cada caixa é o código de saída que o job CI vê.
npm test
Saída do npm test com os scripts acima (o script test foi echo nesta execução). À esquerda: arquivos corretos. À direita: de.json com {nam} em vez de {name} e a chave checkout ausente; npm para antes do test.
$ npm test > [email protected] pretest > npm run i18n:check > [email protected] i18n:check > kaeris check --source locales/en.json --langs de,fr --ci ✓ de: complete & placeholder-safe ✓ fr: complete & placeholder-safe ✓ all locales complete & placeholder-safe > [email protected] test > echo tests would run here tests would run here exit code: 0
$ npm test > [email protected] pretest > npm run i18n:check > [email protected] i18n:check > kaeris check --source locales/en.json --langs de,fr --ci ✗ de: 1 missing key(s): checkout ✗ de: 1 placeholder mismatch(es): greeting: missing ['{name}'], added ['{nam}'] ✗ de: 2 translation fault(s): greeting: lost placeholder {name} greeting: invented placeholder {nam} (not in source) ✓ fr: complete & placeholder-safe ✗ 1 missing key, 1 placeholder mismatch, 2 translation faults exit code: 1
A linha da receita no Makefile
O mesmo comando que o alvo i18n-check executa, e seu código de saída.
$ kaeris check --source locales/en.json --langs de,fr --ci ✓ de: complete & placeholder-safe ✓ fr: complete & placeholder-safe ✓ all locales complete & placeholder-safe exit code: 0
$ kaeris check --source locales/en.json --langs de,fr --ci
✗ de: 1 missing key(s): checkout
✗ de: 1 placeholder mismatch(es):
greeting: missing ['{name}'], added ['{nam}']
✗ de: 2 translation fault(s):
greeting: lost placeholder {name}
greeting: invented placeholder {nam} (not in source)
✓ fr: complete & placeholder-safe
✗ 1 missing key, 1 placeholder mismatch, 2 translation faults
exit code: 1
Configure em três passos
Instale o verificador
Execute
pip install kaerisna máquina ou na imagem CI que roda seus testes.Adicione o alvo ou script
Adicione o alvo
i18n-checkao Makefile ou os scriptsi18n:checkepretestaopackage.json, com seu próprio--sourcee--langs.Execute seu comando usual
make testounpm testagora executam a verificação primeiro e param com código de saída diferente de zero quando uma tradução está quebrada.
Como verificamos isso
Todos os comandos desta página foram executados antes de serem escritos aqui. O que não foi executado também está listado.
O que foi executado
npm testcom os scripts acima, exceto quetestfoi umecho(npm 11.17, Node 24), e kaeris 0.2.35 do PyPI no PATH. Arquivos limpos: código de saída 0, testes executados.de.jsoncom erro: código de saída 1, testes não executados.O que não foi executado
makenão está instalado na máquina onde isso foi verificado. A linha da receita foi executada pelo shell, que é o que o make faz, então o código de saída acima é real, mas o Makefile em si não foi executado pelo make.npm
Ainda não existe pacote kaeris no registro npm, então esta página não direciona para o npm. Projetos Node chamam o pacote Python, como acima.
Opções que vale a pena conhecer
Falhar também em chaves obsoletas
--stricttambém falha quando uma tradução tem chaves que a fonte não possui mais.Mantenha nomes de marcas como estão
--glossary 'KAERIS,GitHub'falha se um termo for removido no destino. A mesma lista pode ficar emkeepnokaeris.json.Layout de arquivo diferente
--outé a pasta com as traduções e--pattern '{lang}/common.json'seus nomes de arquivo. Padrão: o layout quekaeris translategera.Sem flags
Com um
kaeris.jsonno projeto (kaeris initcria um),kaeris checkusa a fonte, idiomas e pasta definidos nele.
Perguntas
Precisa de chave API ou conta?
Não. kaeris check é descrito em sua ajuda como estático, local e sem API, então o job não precisa de segredo. Traduzir é um comando separado que precisa de chave.
O que a verificação detecta?
Um placeholder perdido ou inventado ({name}, %s, {{x}}, plurais ICU), uma chave ausente e um arquivo de localidade que não existe. A comparação é local e estática. O que é verificado, com todas as flags
Funciona sem Python?
O verificador é um pacote Python, então a máquina que executa a verificação precisa de Python 3.8 ou superior. O pacote não declara dependências.
Continue
Outras receitas: GitHub Actions · GitLab CI · pre-commit
Referência CLI · Referência Check · Referência GitHub Action · Check gratuito no navegador · Traduzir no navegador