Traduire

Vérifier les traductions dans GitLab CI

Le job installe le package kaeris et exécute kaeris check sur les merge requests qui touchent vos fichiers de locale. Un placeholder perdu ou une clé manquante fait échouer le pipeline. C'est hors ligne et gratuit : pas de clé API, pas de compte.

KAERIS a traduit cette page et vérifié chaque ligne en la retraduisant. Un locuteur natif ne l'a pas encore revue. Original anglais

La recette

Le job

Ajoutez-le à .gitlab-ci.yml. Modifiez --source pour pointer vers votre fichier de langue de base et --langs pour les locales que vous expédiez. Le bloc rules exécute le job uniquement sur les merge requests qui modifient quelque chose sous locales/ ; supprimez les lignes changes pour l'exécuter sur chaque merge request.

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

Ce qu'elle imprime, lors de vraies exécutions

Sortie de kaeris 0.2.35, capturée le 27 octobre 2026. La dernière ligne de chaque boîte est le code de sortie que le job CI voit.

Ce que le job imprime

Les deux lignes script, exécutées dans l'ordre. Gauche : fichiers corrects. Droite : de.json avec {nam} au lieu de {name} et la clé checkout manquante ; le job s'arrête avec le code de sortie 1.

Fichiers correctsjob 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
Une traduction incorrectejob 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

Configurez-le en trois étapes

  1. Ajouter le job

    Collez le job dans .gitlab-ci.yml et définissez vos propres --source et --langs.

  2. Ouvrir une requête de fusion

    Modifiez un fichier de langue sur une branche et ouvrez une requête de fusion. Le job s'exécute et affiche toutes les anomalies dans son journal.

  3. Exiger le pipeline

    Dans les paramètres du projet sous requêtes de fusion, activez l'option selon laquelle les pipelines doivent réussir. Un job rouge bloque alors la fusion.

Comment nous avons vérifié cela

Chaque commande de cette page a été exécutée avant d'être écrite ici. Ce qui n'a pas été exécuté est également listé.

Options à connaître

Questions

A-t-il besoin d'une clé API ou d'un compte ?

Non. kaeris check est décrit dans son aide comme statique, local et sans API, donc le job n'a pas besoin de secret. La traduction est une commande distincte qui nécessite une clé.

Que détecte la vérification ?

Un placeholder perdu ou inventé ({name}, %s, {{x}}, pluriels ICU), une clé manquante et un fichier de langue absent. La comparaison est locale et statique. Ce qu'il vérifie, avec chaque drapeau

Puis-je sauvegarder le résultat dans un fichier ?

Oui : --json affiche le résultat en JSON et --sarif PATH écrit un rapport SARIF. Ajoutez le fichier sous artifacts si vous souhaitez le conserver. Les deux drapeaux sont dans l'aide de kaeris check ; nous n'avons pas effectué de téléversement d'artefact sur GitLab.

Continuer

Autres recettes : GitHub Actions · pre-commit · Make et scripts npm

Référence CLI · Référence Check · Référence GitHub Action · Vérification gratuite dans le navigateur · Traduction dans le navigateur