Skip to content

CLI — генерация и скаффолдинг ​

CLI vue-i18n-kit помогает скаффолдить и аудировать JSON-файлы локалей.

bash
# Через npx (установка не нужна)
npx vue-i18n-kit <command> [options]

# Или после установки пакета
vue-i18n-kit <command> [options]

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

init — интерактивный мастер настройки ​

Запускает интерактивный мастер, который скаффолдит всю настройку локализации.

bash
vue-i18n-kit init

Что он делает:

  1. Автоматически сканирует проект на наличие существующего вызова createVueI18nPlugin и предзаполняет коды локалей по умолчанию.
  2. Запрашивает коды локалей, отображаемые имена и эмодзи-флаги.
  3. Запрашивает пути к директории локалей и директории тулкита.
  4. Обнаруживает vite.config.ts / nuxt.config.ts и опционально автоматически добавляет vueI18nMapPlugin.
  5. Обрабатывает существующие JSON-файлы локалей — сохранить, перезаписать или скопировать структуру из другой локали.
  6. Записывает i18n-kit.config.json, i18n-tools/locales.config.json, заготовки JSON локалей.

Запуск vue-i18n-kit init в существующем проекте предлагает три варианта: использовать текущий конфиг как есть, обновить настройки или переинициализировать с нуля.

Интеграция с i18n Ally — мастер опционально генерирует .vscode/settings.json для i18n Ally с инлайн-предпросмотром переводов и подсветкой отсутствующих ключей.

dev — запуск приложения и редактора вместе ​

Запускает собственный dev-сервер вашего приложения и UI редактора локалей параллельно, в одном терминале.

bash
vue-i18n-kit dev
vue-i18n-kit dev --ui-port 4200
vue-i18n-kit dev --app-cmd "nuxt dev"
ФлагПо умолчаниюОписание
--ui-port <number>4173Порт для сервера vue-i18n-kit ui.
--app-cmd <cmd>автоопределённый scripts.devПереопределить команду запуска приложения вместо чтения package.json.

Команда приложения определяется автоматически из scripts.dev в package.json и запускается через тот менеджер пакетов, чей lock-файл присутствует (npm, pnpm или yarn). Процессу приложения автоматически передаётся I18N_KIT_UI_URL, поэтому vueI18nDevPlugin подхватывает URL редактора без явной настройки. Ctrl+C останавливает оба процесса вместе.

ui — запустить UI редактора локалей ​

Запускает только сервер UI редактора локалей, без вашего приложения.

bash
vue-i18n-kit ui
vue-i18n-kit ui --port 4200
ФлагПо умолчаниюОписание
--port <number>4173Порт для прослушивания.

auto-config — неинтерактивная синхронизация конфига ​

Заново определяет локали из вашего вызова createVueI18nPlugin(...) и обновляет vite.config.ts/nuxt.config.ts соответственно — без запросов. Полезно в CI или как скрипт postinstall/pre-commit, в отличие от интерактивного init.

bash
vue-i18n-kit auto-config

Не принимает флагов. Читает вызов createVueI18nPlugin(...) как единственный источник правды о том, какие локали существуют, затем вставляет или обновляет вызов vueI18nMapPlugin в вашем Vite/Nuxt-конфиге, чтобы он оставался синхронизированным — тот же шаг, что init выполняет интерактивно при первой настройке.

add — добавить новую локаль ​

Копирует структуру существующего файла локали в новый.

bash
vue-i18n-kit add fr
vue-i18n-kit add fr --from en --empty
vue-i18n-kit add de --dir src/i18n --from en --empty
ФлагПо умолчаниюОписание
--dir <path>src/localesДиректория локалей.
--from <locale>первый файл в директорииИсходная локаль для копирования структуры.
--emptyfalseЗаписывать пустые строки вместо копирования значений источника.

merge — слить общий словарь ​

Глубоко сливает базовый или корпоративный JSON-словарь в файлы локалей проекта. По умолчанию добавляет только отсутствующие ключи — существующие переводы остаются нетронутыми, если не передан --overwrite.

bash
vue-i18n-kit merge shared/base.json --dry
vue-i18n-kit merge shared/base.json
vue-i18n-kit merge updates.json --locale ru --overwrite
ФлагПо умолчаниюОписание
--dir <path>src/localesДиректория локалей.
--locale <code>все локалиСлить только в эту локаль.
--overwritefalseПерезаписывать существующие ключи вместо их пропуска.
--dryfalseПредпросмотр изменений без записи файлов.
--no-sortfalseПропустить алфавитную сортировку результирующих ключей.

Ключи, перечисленные в ignore.prune и locked в i18n-kit.config.json, никогда не перезаписываются — даже с --overwrite.

types — сгенерировать типы TypeScript ​

Генерирует union-тип TranslationKey из референсного файла локали. Даёт автодополнение и проверку ключей на этапе компиляции при вызове t().

bash
vue-i18n-kit types
vue-i18n-kit types --out src/types/i18n.d.ts --locale en --watch
ФлагПо умолчаниюОписание
--out <path>src/i18n.d.tsПуть к выходному файлу.
--locale <code>первая в конфигеЛокаль, используемая как источник ключей.
--dir <path>src/localesДиректория локалей.
--watchfalseАвтоматически перегенерировать при изменении файла локали.

Пример сгенерированного файла:

ts
// src/i18n.d.ts — сгенерировано vue-i18n-kit, не редактировать

export type TranslationKey = 'buttons.cancel' | 'buttons.submit' | 'greeting' | 'items'

declare module 'vue-i18n-kit' {
  interface Register {
    key: TranslationKey
  }
}

С расширением Register компилятор будет выдавать ошибку на неизвестных ключах:

ts
const { t } = useT()
t('buttons.submit') // ✓
t('buttons.submitt') // ✗ ошибка TypeScript

split — разбить монолитную локаль на неймспейсы ​

Разбивает каждый {locale}.json на файлы по неймспейсам: {locale}/{namespace}.json.

bash
vue-i18n-kit split
vue-i18n-kit split --dir src/locales --out src/locales/split --dry
ФлагПо умолчаниюОписание
--dir <path>localesDir из конфигаИсходная директория локалей.
--out <path><dir>/splitВыходная директория.
--dryfalseПредпросмотр без записи файлов.

merge-ns — слить файлы неймспейсов обратно в плоский JSON ​

Обратная операция к split: читает все файлы *.json в каждой поддиректории локали и сливает их в единый {locale}.json.

bash
vue-i18n-kit merge-ns
vue-i18n-kit merge-ns --dir src/locales/split --out src/locales --dry