Traduzir

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.

ConfiguraçãoMakefile
.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.

Configuraçãopackage.json
{
  "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.

Arquivos que estão corretosnpm 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
Uma tradução com erronpm 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: 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.

Arquivos que estão corretosrecipe line
$ 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
Uma tradução com errorecipe line
$ 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

  1. Instale o verificador

    Execute pip install kaeris na máquina ou na imagem CI que roda seus testes.

  2. Adicione o alvo ou script

    Adicione o alvo i18n-check ao Makefile ou os scripts i18n:check e pretest ao package.json, com seu próprio --source e --langs.

  3. Execute seu comando usual

    make test ou npm test agora 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.

Opções que vale a pena conhecer

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