Traduzir

Verifique traduções no GitLab CI

O job instala o pacote kaeris e roda kaeris check em merge requests que alteram seus arquivos de localidade. Placeholder perdido ou chave faltando falha o pipeline. É offline e gratuito: sem chave 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 job

Adicione em .gitlab-ci.yml. Altere --source para seu arquivo da língua base e --langs para os locais que você distribui. O bloco rules roda o job só em merge requests que mudam algo em locales/; remova as linhas changes para rodar em todo merge request.

Configuração.gitlab-ci.yml
i18n-check:
  stage: test
  image: python:3.12-slim
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      changes:
        - locales/**/*
  script:
    - pip install kaeris
    - kaeris check --source locales/en.json --langs de,fr --ci

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 o job imprime

As duas linhas script, executadas em ordem. À esquerda: arquivos que estão corretos. À direita: de.json com {nam} em vez de {name} e a chave checkout faltando; o job para com código de saída 1.

Arquivos que estão corretosjob log
$ pip install kaeris
Collecting kaeris
  Using cached kaeris-0.2.35-py3-none-any.whl.metadata (26 kB)
Using cached kaeris-0.2.35-py3-none-any.whl (131 kB)
Installing collected packages: kaeris
Successfully installed kaeris-0.2.35

$ kaeris check --source locales/en.json --langs de,fr --ci
✓ de: complete & placeholder-safe
✓ fr: complete & placeholder-safe
✓ all locales complete & placeholder-safe
Job succeeded
exit code: 0
Uma tradução com errojob log
$ pip install kaeris
Requirement already satisfied: kaeris in C:\Users\Inzagi\AppData\Local\Temp\claude\C--Users-Inzagi-projects-kaeris\bfeebe69-3cfd-4f28-bbe7-e5600be082b9\scratchpad\venv-gl2\Lib\site-packages (0.2.35)

$ 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
ERROR: Job failed: exit code 1
exit code: 1

Configure em três passos

  1. Adicione o job

    Cole o job no .gitlab-ci.yml e defina seu próprio --source e --langs.

  2. Abra um merge request

    Altere um arquivo de localidade em um branch e abra um merge request. O job é executado e mostra todas as ocorrências no seu log.

  3. Exija o pipeline

    Nas configurações do projeto, em merge requests, ative que os pipelines devem ser bem-sucedidos. Um job vermelho então bloqueia o merge.

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

Posso salvar o resultado em um arquivo?

Sim: --json imprime o resultado em JSON e --sarif PATH grava um relatório SARIF. Adicione o arquivo em artifacts se quiser mantê-lo. Ambas as flags estão na ajuda do kaeris check; não executamos upload de artifact no GitLab.

Continue

Outras receitas: GitHub Actions · pre-commit · Make e scripts npm

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