Traduci

Controlla le traduzioni in GitLab CI

Il job installa il pacchetto kaeris ed esegue kaeris check sulle merge request che modificano i tuoi file di localizzazione. Un placeholder perso o una chiave mancante fanno fallire la pipeline. È offline e gratuito: nessuna chiave API, nessun account.

KAERIS ha tradotto questa pagina e controllato ogni riga ritraducendola. Un madrelingua non l'ha ancora revisionata. Originale in inglese

La ricetta

Il job

Aggiungilo a .gitlab-ci.yml. Modifica --source con il tuo file della lingua base e --langs con le localizzazioni che distribuisci. Il blocco rules esegue il job solo sulle merge request che modificano qualcosa sotto locales/; rimuovi le righe changes per eseguirlo su ogni merge request.

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

Cosa stampa, nelle esecuzioni reali

Output di kaeris 0.2.35, catturato il 27 ottobre 2026. L'ultima riga di ogni box è il codice di uscita che il job CI vede.

Cosa stampa il job

Le due righe script, eseguite in ordine. A sinistra: file che vanno bene. A destra: de.json con {nam} invece di {name} e la chiave checkout mancante; il job si interrompe con codice di uscita 1.

File che vanno benejob 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
Una traduzione erratajob 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

Configuralo in tre passaggi

  1. Aggiungi il job

    Incolla il job in .gitlab-ci.yml e imposta i tuoi --source e --langs.

  2. Apri una merge request

    Modifica un file di localizzazione su un branch e apri una merge request. Il job viene eseguito e mostra tutti i risultati nel suo log.

  3. Richiedi la pipeline

    Nelle impostazioni del progetto, sotto le merge request, attiva l'opzione che le pipeline devono avere successo. Un job rosso bloccherà quindi la merge.

Come abbiamo verificato questo

Ogni comando in questa pagina è stato eseguito prima di essere scritto qui. Quello che non è stato eseguito è elencato anch'esso.

Opzioni degne di nota

Domande

Richiede una chiave API o un account?

No. kaeris check è descritto nel suo stesso aiuto come statico, locale e senza API, quindi il job non necessita di secret. La traduzione è un comando separato che richiede una chiave.

Cosa rileva il controllo?

Un placeholder perso o inventato ({name}, %s, {{x}}, plurali ICU), una chiave mancante e un file di localizzazione inesistente. Il confronto è locale e statico. Cosa controlla, con ogni flag

Posso salvare il risultato come file?

Sì: --json stampa il risultato come JSON e --sarif PATH scrive un report SARIF. Aggiungi il file sotto artifacts se vuoi conservarlo. Entrambi i flag sono nell'help di kaeris check; non abbiamo eseguito un caricamento di artefatti su GitLab.

Continua

Altre ricette: GitHub Actions · pre-commit · Make e script npm

Riferimento CLI · Riferimento Check · Riferimento GitHub Action · Controllo gratuito nel browser · Traduci nel browser