Перевіряйте переклади зі скриптів Make або npm
Якщо ваш проєкт вже має make test або npm test, додайте перевірку перекладів туди. kaeris check завершується з кодом 1, коли плейсхолдер або ключ пошкоджені, тому вся ціль зазнає невдачі. Це офлайн і безкоштовно: без API ключа, без облікового запису.
KAERIS переклав цю сторінку та перевірив кожен рядок зворотним перекладом. Носій мови ще не переглядав її. Оригінал англійською
Рецепт
Makefile
Встановіть перевіряльник один раз за допомогою pip install kaeris. Рядок рецепту починається з табуляції. Зробивши test залежним від i18n-check, ви виконаєте перевірку перед тестами.
.PHONY: i18n-check test i18n-check: kaeris check --source locales/en.json --langs de,fr --ci test: i18n-check ./run-tests.sh
npm скрипти
Скрипт лише викликає kaeris з вашого PATH, тому перевіряльник — це пакет Python з pip install kaeris. pretest виконується перед test і зупиняє його, якщо перевірка не вдається.
{
"scripts": {
"i18n:check": "kaeris check --source locales/en.json --langs de,fr --ci",
"pretest": "npm run i18n:check",
"test": "jest"
}
}
Що друкується під час реальних запусків
Вивід kaeris 0.2.35, захоплено 27 жовтня 2026 року. Остання строка кожного блоку — це код виходу, який бачить CI-завдання.
npm test
Вивід npm test з наведеними вище скриптами (скрипт test у цьому запуску був echo). Ліворуч: файли, які в порядку. Праворуч: de.json з {nam} замість {name} та відсутнім ключем checkout; npm зупиняється перед test.
$ npm test > [email protected] pretest > npm run i18n:check > [email protected] i18n:check > kaeris check --source locales/en.json --langs de,fr --ci ✓ de: complete & placeholder-safe ✓ fr: complete & placeholder-safe ✓ all locales complete & placeholder-safe > [email protected] test > echo tests would run here tests would run here exit code: 0
$ npm test > [email protected] pretest > npm run i18n:check > [email protected] i18n:check > 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 exit code: 1
Рядок рецепту Makefile
Та сама команда, яку виконує ціль i18n-check, та її код виходу.
$ kaeris check --source locales/en.json --langs de,fr --ci ✓ de: complete & placeholder-safe ✓ fr: complete & placeholder-safe ✓ all locales complete & placeholder-safe exit code: 0
$ 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
exit code: 1
Налаштуйте це за три кроки
Встановіть перевіряльник
Виконайте
pip install kaerisна машині або в образі CI, де виконуються ваші тести.Додайте ціль або скрипт
Додайте ціль
i18n-checkдо Makefile або скриптиi18n:checkтаpretestдоpackage.json, вказавши власні--sourceта--langs.Виконайте звичайну команду
make testабоnpm testтепер спочатку виконує перевірку і зупиняється з ненульовим кодом виходу, коли переклад пошкоджений.
Як ми це перевіряли
Кожна команда на цій сторінці була виконана перед тим, як її тут написали. Те, що не було виконано, також перелічено.
Що виконалося
npm testзі скриптами вище, за винятком того, щоtestбувecho(npm 11.17, Node 24), а kaeris 0.2.35 з PyPI у PATH. Чисті файли: код виходу 0, тести виконано. Пошкодженийde.json: код виходу 1, тести не виконано.Що не виконалося
makeне встановлено на машині, де це перевірялося. Рядок рецепту було виконано через оболонку, що робить make, тому код виходу вище є реальним, але сам Makefile не був запущений make.npm
Наразі немає пакету kaeris у реєстрі npm, тому ця сторінка не перенаправляє вас до npm. Node проєкти викликають пакет Python, як описано вище.
Опції, які варто знати
Помилка також на застарілих ключах
--strictтакож призводить до помилки, коли переклад містить ключі, яких більше немає у вихідному файлі.Зберігайте назви брендів як написано
--glossary 'KAERIS,GitHub'призведе до помилки цільового файлу, який пропустив один із термінів. Той самий список може бути вkeepуkaeris.json.Інший макет файлів
--out— це папка з перекладами, а--pattern '{lang}/common.json'— їхні імена файлів. За замовчуванням: макет, який створюєkaeris translate.Жодних прапорців
За наявності файлу
kaeris.jsonу проєкті (його записуєkaeris init),kaeris checkбере вихідний файл, мови та папку з нього.
Запитання
Чи потрібен API ключ або обліковий запис?
Ні. kaeris check описано у його власній довідці як статичний, локальний і без API, тому завдання не потребує секретів. Переклад — це окрема команда, яка потребує ключа.
Що виявляє перевірка?
Втрачений або вигаданий плейсхолдер ({name}, %s, {{x}}, відмінки ICU), відсутній ключ та файл локалі, якого немає. Порівняння є локальним та статичним. Що перевіряється, з усіма прапорцями
Чи працює це без Python?
Перевіряльник є пакетом Python, тому машина, яка виконує перевірку, потребує Python 3.8 або новішої версії. Пакет не декларує жодних залежностей.
Продовжуйте
Інші рецепти: GitHub Actions · GitLab CI · pre-commit
Довідник CLI · Довідник Check · Довідник GitHub Action · Безкоштовна перевірка в браузері · Переклад у браузері