翻訳

GitLab CIで翻訳をチェックする

ジョブはkaerisパッケージをインストールし、ロケールファイルに触れるマージリクエストに対してkaeris checkを実行します。プレースホルダーの欠落やキーの欠落はパイプラインを失敗させます。オフラインで無料です:APIキー不要、アカウント不要。

KAERISはこのページを翻訳し、すべての行を逆翻訳して確認しました。ネイティブスピーカーによるレビューはまだ行われていません。 英語原文

レシピ

ジョブ

.gitlab-ci.yml に追加します。--source をベース言語ファイルに、--langs を出荷するロケールに変更します。rules ブロックは、locales/ 以下を変更するマージリクエストでのみジョブを実行します。すべてのマージリクエストで実行するには、changes の行を削除してください。

設定.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

実際の実行時に表示される内容

KAERIS 0.2.35 の出力、2026年10月27日取得。各ボックスの最後の行は、CIジョブが認識する終了コードです。

ジョブが出力する内容

2つのscript行が順番に実行されます。左:問題のないファイル。右:de.json で {name} の代わりに {nam} が使われ、checkout キーが欠落しています。ジョブは終了コード1で停止します。

問題のないファイルjob 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
壊れた翻訳job 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

3つのステップで設定します

  1. ジョブを追加する

    .gitlab-ci.yml にジョブを貼り付け、独自の --source と --langs を設定します。

  2. マージリクエストを開く

    ブランチでロケールファイルを変更し、マージリクエストを開きます。ジョブが実行され、ログにすべての検出結果が表示されます。

  3. パイプラインを必須にする

    プロジェクト設定のマージリクエストの下で、パイプラインが成功しなければならないようにします。すると、赤いジョブがマージをブロックします。

どのようにチェックしたか

このページにあるすべてのコマンドは、ここに書かれる前に実行されました。実行されなかったものもリストされています。

知っておくと便利なオプション

よくある質問

APIキーやアカウントは必要ですか?

いいえ。kaeris check はそのヘルプで静的、ローカル、API不要と説明されているため、ジョブにシークレットは不要です。翻訳は別のコマンドであり、キーが必要です。

チェックは何を検出しますか?

失われたまたは発明されたプレースホルダー({name}、%s、{{x}}、ICU複数形)、欠落しているキー、および存在しないロケールファイル。比較はローカルかつ静的です。チェック内容とすべてのフラグ

結果をファイルとして保存できますか?

はい:--json は結果をJSONとして出力し、--sarif PATH はSARIFレポートを書き込みます。保持したい場合は、artifacts の下にファイルを追加します。両方のフラグは kaeris check のヘルプにあります。GitLabでアーティファクトのアップロードは実行しませんでした。

続ける

その他のレシピ:GitHub Actions · pre-commit · Makeとnpmスクリプト

CLIリファレンス · Checkリファレンス · GitHub Actionリファレンス · ブラウザでの無料チェック · ブラウザでの翻訳