Übersetzen

Übersetzungen in GitLab CI prüfen

Der Job installiert das Paket kaeris und führt kaeris check bei Merge Requests aus, die Ihre Locale-Dateien berühren. Ein verlorener Platzhalter oder ein fehlender Schlüssel führt dazu, dass die Pipeline fehlschlägt. Es ist offline und kostenlos: kein API-Schlüssel, kein Konto.

KAERIS hat diese Seite übersetzt und jede Zeile durch Rückübersetzung geprüft. Ein Muttersprachler hat sie noch nicht überprüft. Englisches Original

Das Rezept

Der Job

Fügen Sie es zu .gitlab-ci.yml hinzu. Ändern Sie --source zu Ihrer Basis-Sprachdatei und --langs zu den von Ihnen ausgelieferten Locales. Der Block rules führt den Job nur bei Merge Requests aus, die etwas unter locales/ ändern; lassen Sie die Zeilen changes weg, um ihn bei jedem Merge Request auszuführen.

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

Was es bei echten Ausführungen ausgibt

Ausgabe von kaeris 0.2.35, erfasst am 27. Oktober 2026. Die letzte Zeile jeder Box ist der Exit-Code, den der CI-Job sieht.

Was der Job ausgibt

Die beiden script-Zeilen, in der Reihenfolge ausgeführt. Links: Dateien, die in Ordnung sind. Rechts: de.json mit {nam} anstelle von {name} und fehlendem checkout-Schlüssel; der Job stoppt mit Exit-Code 1.

Dateien, die in Ordnung sindjob 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
Eine fehlerhafte Übersetzungjob 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

Richten Sie es in drei Schritten ein

  1. Job hinzufügen

    Fügen Sie den Job in .gitlab-ci.yml ein und legen Sie Ihre eigenen --source und --langs fest.

  2. Merge Request öffnen

    Ändern Sie eine Locale-Datei in einem Branch und öffnen Sie einen Merge Request. Der Job wird ausgeführt und zeigt alle Funde in seinem Log an.

  3. Pipeline erzwingen

    Schalten Sie in den Projekteinstellungen unter Merge Requests ein, dass Pipelines erfolgreich sein müssen. Ein roter Job blockiert dann den Merge.

Wie wir das geprüft haben

Jeder Befehl auf dieser Seite wurde ausgeführt, bevor er hier geschrieben wurde. Was nicht ausgeführt wurde, ist ebenfalls aufgelistet.

Optionen, die es wert sind, zu kennen

Fragen

Benötigt es einen API-Schlüssel oder ein Konto?

Nein. kaeris check wird in seiner eigenen Hilfe als statisch, lokal und ohne API beschrieben, sodass der Job kein Secret benötigt. Das Übersetzen ist ein separater Befehl, der einen Schlüssel benötigt.

Was fängt die Prüfung ab?

Ein verlorener oder erfundener Platzhalter ({name}, %s, {{x}}, ICU-Pluralformen), ein fehlender Schlüssel und eine nicht vorhandene Locale-Datei. Der Vergleich ist lokal und statisch. Was es prüft, mit jedem Flag

Kann ich das Ergebnis als Datei speichern?

Ja: --json gibt das Ergebnis als JSON aus und --sarif PATH schreibt einen SARIF-Bericht. Fügen Sie die Datei unter artifacts hinzu, wenn Sie sie behalten möchten. Beide Flags finden Sie in der Hilfe von kaeris check; wir haben keinen Artifact-Upload auf GitLab durchgeführt.

Weiter geht's

Andere Rezepte: GitHub Actions · pre-commit · Make und npm Skripte

Referenz zur CLI · Referenz zur Prüfung · Referenz zur GitHub Action · Kostenlose Prüfung im Browser · Übersetzen im Browser