Skip to content

CLI — аудит и отчёты

Команды аудита и отчётности — check, prune, stale, export, import, stats. Команды скаффолдинга и генерации (init, add, merge, types, split, merge-ns) — на странице CLI — генерация и скаффолдинг.

check — аудит полноты переводов

Читает все файлы .json в директории локалей и сообщает об отсутствующих или лишних ключах по сравнению с референсной локалью.

bash
vue-i18n-kit check
vue-i18n-kit check --default en --dir src/i18n

# Завершиться с кодом 1, если какие-либо ключи отсутствуют (полезно в CI)
vue-i18n-kit check --default en --fail
ФлагПо умолчаниюОписание
--dir <path>src/localesДиректория локалей.
--default <locale>первая по алфавитуРеференсная локаль.
--failfalseЗавершиться с кодом 1, если какие-либо ключи отсутствуют.

Интеграция с CI (GitHub Actions):

yaml
- name: Check i18n completeness
  run: npx vue-i18n-kit check --default en --fail

prune — удалить неиспользуемые ключи

Сканирует исходные файлы на вызовы t(), tm(), $t() и удаляет любые ключи локали, на которые нет ссылок нигде в проекте.

bash
vue-i18n-kit prune --dry
vue-i18n-kit prune
vue-i18n-kit prune --entries i18n-tools/locales.entries.json
ФлагПо умолчаниюОписание
--dir <path>src/localesДиректория локалей.
--entries <file>(сканирование)Путь к предварительно собранному locales.entries.json; пропускает сканирование.
--dryfalseВывести ключи, которые были бы удалены, без записи файлов.
--yesfalseПропустить запрос подтверждения.
--ignore <patterns>(нет)Шаблоны ключей через запятую, которые никогда не удалять (напр. "status.*,legacy.*").

Подсказка: запускайте prune --dry в CI и завершайте сборку с ошибкой, если вывод не пуст, чтобы обеспечить политику «без мёртвых ключей».

stale — показать устаревшие переводы

Сообщает о ключах, чьё референсное значение локали изменилось с момента последней проверки перевода. Требует staleTracking: true в i18n-kit.config.json.

bash
vue-i18n-kit stale

Вывод:

Stale keys (reference locale changed since last review):
  buttons.submit      stored: "Submit"  →  current: "Submit form"
  errors.auth.invalid  stored: "Invalid"  →  current: "Invalid credentials"

export — экспорт для переводчиков (XLIFF / PO)

Экспортирует локаль в формат XLIFF 1.2 или Gettext PO, готовый для отправки в профессиональное переводческое агентство или CAT-инструмент.

bash
vue-i18n-kit export --locale ru
vue-i18n-kit export --locale ru --format po --out translations/ru.po
vue-i18n-kit export --locale ru --format xliff --ref en
ФлагПо умолчаниюОписание
--locale <code>Обязателен. Локаль для экспорта.
--format <xliff|po>xliffФормат вывода.
--out <path><locale>.<format>Путь к выходному файлу.
--dir <path>src/localesДиректория локалей.
--ref <code>первая в конфигеРеференсная локаль (исходный язык).

import — импорт из XLIFF / PO

Читает завершённый файл XLIFF или PO от переводчика и записывает переведённые значения обратно в JSON локали.

bash
vue-i18n-kit import ru.xliff
vue-i18n-kit import translations/ru.po --dry

Код целевой локали считывается из самого файла. Обновляются только ключи, присутствующие в импортируемом файле; несвязанные ключи остаются нетронутыми.

Отчёт о покрытии (vue-i18n-kit stats)

Получите быстрый снимок полноты переводов без открытия редактора.

bash
vue-i18n-kit stats
vue-i18n-kit stats --format json --out ci-report.json
vue-i18n-kit stats --format html

Вывод в консоли:

  vue-i18n-kit stats  2026-04-11
  35 keys · 3 locales

  Coverage
  🇬🇧 English (en)    ████████████████████  100%
  🇷🇺 Русский (ru)    ████████████████░░░░   89%  4 missing
  🇩🇪 Deutsch (de)    ███████████████░░░░░   77%  8 missing

Пример GitHub Actions:

yaml
- name: Check i18n coverage
  run: |
    npx vue-i18n-kit stats --format json --out coverage.json
    node -e "
      const r = require('./coverage.json');
      const low = r.locales.filter(l => l.coverage < 80);
      if (low.length) { console.error('Low coverage:', low.map(l => l.code + ' ' + l.coverage + '%')); process.exit(1); }
    "
ОпцияОписание
--format consoleВывод в терминал с ANSI-цветами (по умолчанию)
--format jsonМашиночитаемый JSON; пишет в stdout или --out
--format htmlСамодостаточный HTML-файл (по умолчанию: i18n-stats.html)
--out <path>Записать в файл вместо stdout (json/html)
--dir <path>Директория локалей (по умолчанию: src/locales)