Перекласти

Перевіряйте переклади в GitLab CI

Завдання встановлює пакет kaeris та запускає kaeris check для merge request, які торкаються ваших файлів локалізації. Втрачений плейсхолдер або відсутній ключ призводить до збою конвеєра. Це офлайн і безкоштовно: без API ключа, без облікового запису.

KAERIS переклав цю сторінку та перевірив кожен рядок зворотним перекладом. Носій мови ще не переглядав її. Оригінал англійською

Рецепт

Завдання

Додайте його до .gitlab-ci.yml. Змініть --source на файл вашої базової мови та --langs на локалі, які ви постачаєте. Блок rules запускає завдання лише для merge request, які змінюють щось у locales/; видаліть рядки changes, щоб запускати його для кожного merge request.

Конфігурація.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, захоплено 27 жовтня 2026 року. Остання строка кожного блоку — це код виходу, який бачить CI-завдання.

Що друкує завдання

Два рядки script, виконані послідовно. Зліва: файли, які в порядку. Справа: de.json з {nam} замість {name} та відсутнім ключем 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

Налаштуйте це за три кроки

  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 · Безкоштовна перевірка в браузері · Переклад у браузері