Traduzir

Verifique traduções com pre-commit

Com pre-commit, um commit que altera um arquivo de localidade executa kaeris check primeiro e é recusado quando uma tradução perdeu um placeholder ou uma chave. É 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

O hook

Salve como .pre-commit-config.yaml na raiz do projeto. É um hook local: pre-commit constrói seu próprio ambiente e instala kaeris do PyPI nele, então nada mais precisa ser instalado. files limita a commits que adicionam algo em locales/ ao stage.

Configuração.pre-commit-config.yaml
repos:
  - repo: local
    hooks:
      - id: kaeris-check
        name: kaeris check (translations)
        entry: kaeris check --source locales/en.json --langs de,fr --ci
        language: python
        additional_dependencies: ["kaeris==0.2.35"]
        files: ^locales/
        pass_filenames: false

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ê.

O que um commit imprime

À esquerda: um commit com arquivos corretos. À direita: um commit com de.json que tem {nam} em vez de {name} e a chave checkout ausente; o commit é recusado.

Arquivos que estão corretosgit commit
$ git commit -m "add locales"
kaeris check (translations)..............................................Passed
[main (root-commit) 96c8a87] add locales
 4 files changed, 25 insertions(+)
 create mode 100644 .pre-commit-config.yaml
 create mode 100644 locales/de.json
 create mode 100644 locales/en.json
 create mode 100644 locales/fr.json
exit code: 0
Uma tradução com errogit commit
$ git commit -m "break de"
kaeris check (translations)..............................................Failed
- hook id: kaeris-check
- exit code: 1

✗ 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

Um commit que não altera arquivo de localidade

O hook é ignorado, então commits não relacionados continuam rápidos.

Nada a verificargit commit
$ git commit -m "readme"   # nothing under locales/ is staged
kaeris check (translations)..........................(no files to check)Skipped
[main e82b41d] readme
 1 file changed, 1 insertion(+)
 create mode 100644 README.md
exit code: 0

Configure em três passos

  1. Adicione o hook

    Salve a configuração acima como .pre-commit-config.yaml e defina seu próprio --source e --langs. Mantenha a versão fixa e atualize-a quando fizer upgrade.

  2. Instale o git hook

    Execute pip install pre-commit e depois pre-commit install uma vez por clone.

  3. Faça commits normalmente

    Um commit que adiciona um arquivo dentro de locales/ executa a verificação e é recusado se falhar. pre-commit run --all-files executa a mesma verificação sob demanda, por exemplo, em CI.

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

Isso deixa cada commit mais lento?

Apenas commits que adicionam um arquivo que corresponde a files. A primeira execução constrói o ambiente do hook, que precisa de rede; execuções posteriores reutilizam esse ambiente. Não medimos o tempo, então não há número aqui.

Continue

Outras receitas: GitHub Actions · GitLab CI · Make e scripts npm

Referência CLI · Referência Check · Referência GitHub Action · Check gratuito no navegador · Traduzir no navegador