Перекласти

Перевіряйте переклади за допомогою pre-commit

За допомогою pre-commit, коміт, що торкається файлу локалі, спочатку виконує kaeris check і відхиляється, коли переклад втратив плейсхолдер або ключ. Це офлайн і безкоштовно: без API ключа, без облікового запису.

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

Рецепт

Хук

Збережіть його як .pre-commit-config.yaml у корені проєкту. Це локальний хук: pre-commit створює власне середовище та встановлює kaeris з PyPI у нього, тому нічого іншого встановлювати не потрібно. files обмежує його комітами, які додають щось під locales/.

Конфігурація.pre-commit-config.yaml
repos:
  - repo: local
    hooks:
      - id: kaeris-check
        name: kaeris check (translations)
        entry: kaeris check --source locales/en.json --langs de,fr --ci
        language: python
        additional_dependencies: ["kaeris==0.2.35"]
        files: ^locales/
        pass_filenames: false

Що друкується під час реальних запусків

Вивід kaeris 0.2.35, захоплено 27 жовтня 2026 року. Остання строка кожного блоку — це код виходу, який бачить CI-завдання.

Що виводить коміт

Ліворуч: коміт з файлами, які в порядку. Праворуч: коміт з de.json, який має {nam} замість {name} та відсутній ключ checkout; коміт відхилено.

Файли, які в порядкуgit commit
$ git commit -m "add locales"
kaeris check (translations)..............................................Passed
[main (root-commit) 96c8a87] add locales
 4 files changed, 25 insertions(+)
 create mode 100644 .pre-commit-config.yaml
 create mode 100644 locales/de.json
 create mode 100644 locales/en.json
 create mode 100644 locales/fr.json
exit code: 0
Неправильний перекладgit commit
$ git commit -m "break de"
kaeris check (translations)..............................................Failed
- hook id: kaeris-check
- exit code: 1

✗ 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

exit code: 1

Коміт, який не торкається жодного файлу локалі

Хук пропускається, тому непов'язані коміти залишаються швидкими.

Немає чого перевірятиgit commit
$ git commit -m "readme"   # nothing under locales/ is staged
kaeris check (translations)..........................(no files to check)Skipped
[main e82b41d] readme
 1 file changed, 1 insertion(+)
 create mode 100644 README.md
exit code: 0

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

  1. Додайте хук

    Збережіть конфігурацію вище як .pre-commit-config.yaml та встановіть власні --source і --langs. Зберігайте версію та оновлюйте її під час апгрейду.

  2. Встановіть git-хук

    Запустіть pip install pre-commit, а потім pre-commit install один раз для кожного клону.

  3. Коммітьте як зазвичай

    Комміт, який додає файл до індексу в locales/, запускає перевірку та відхиляється, якщо вона не проходить. pre-commit run --all-files запускає ту саму перевірку за вимогою, наприклад, у CI.

Як ми це перевіряли

Кожна команда на цій сторінці була виконана перед тим, як її тут написали. Те, що не було виконано, також перелічено.

Опції, які варто знати

Запитання

Чи потрібен API ключ або обліковий запис?

Ні. kaeris check описано у його власній довідці як статичний, локальний і без API, тому завдання не потребує секретів. Переклад — це окрема команда, яка потребує ключа.

Що виявляє перевірка?

Втрачений або вигаданий плейсхолдер ({name}, %s, {{x}}, відмінки ICU), відсутній ключ та файл локалі, якого немає. Порівняння є локальним та статичним. Що перевіряється, з усіма прапорцями

Чи сповільнює це кожен комміт?

Тільки комміти, які додають файл, що відповідає files. Перший запуск створює середовище хука, яке потребує мережі; наступні запуски його повторно використовують. Ми не вимірювали час, тому тут немає цифр.

Продовжуйте

Інші рецепти: GitHub Action · GitLab CI · Make та npm скрипти

Довідник CLI · Довідник Check · Довідник GitHub Action · Безкоштовна перевірка в браузері · Переклад у браузері