CLI — генерация и скаффолдинг
CLI vue-i18n-kit помогает скаффолдить и аудировать JSON-файлы локалей.
# Через npx (установка не нужна)
npx vue-i18n-kit <command> [options]
# Или после установки пакета
vue-i18n-kit <command> [options]Эта страница описывает команды скаффолдинга и генерации — init, add, merge, types, split, merge-ns. Команды аудита и отчётности (check, prune, stale, export, import, stats) — на странице CLI — аудит и отчёты.
init — интерактивный мастер настройки
Запускает интерактивный мастер, который скаффолдит всю настройку локализации.
vue-i18n-kit initЧто он делает:
- Автоматически сканирует проект на наличие существующего вызова
createVueI18nPluginи предзаполняет коды локалей по умолчанию. - Запрашивает коды локалей, отображаемые имена и эмодзи-флаги.
- Запрашивает пути к директории локалей и директории тулкита.
- Обнаруживает
vite.config.ts/nuxt.config.tsи опционально автоматически добавляетvueI18nMapPlugin. - Обрабатывает существующие JSON-файлы локалей — сохранить, перезаписать или скопировать структуру из другой локали.
- Записывает
i18n-kit.config.json,i18n-tools/locales.config.json, заготовки JSON локалей.
Запуск vue-i18n-kit init в существующем проекте предлагает три варианта: использовать текущий конфиг как есть, обновить настройки или переинициализировать с нуля.
Интеграция с i18n Ally — мастер опционально генерирует .vscode/settings.json для i18n Ally с инлайн-предпросмотром переводов и подсветкой отсутствующих ключей.
add — добавить новую локаль
Копирует структуру существующего файла локали в новый.
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> | первый файл в директории | Исходная локаль для копирования структуры. |
--empty | false | Записывать пустые строки вместо копирования значений источника. |
merge — слить общий словарь
Глубоко сливает базовый или корпоративный JSON-словарь в файлы локалей проекта. По умолчанию добавляет только отсутствующие ключи — существующие переводы остаются нетронутыми, если не передан --overwrite.
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> | все локали | Слить только в эту локаль. |
--overwrite | false | Перезаписывать существующие ключи вместо их пропуска. |
--dry | false | Предпросмотр изменений без записи файлов. |
--no-sort | false | Пропустить алфавитную сортировку результирующих ключей. |
Ключи, перечисленные в
ignore.pruneиlockedвi18n-kit.config.json, никогда не перезаписываются — даже с--overwrite.
types — сгенерировать типы TypeScript
Генерирует union-тип TranslationKey из референсного файла локали. Даёт автодополнение и проверку ключей на этапе компиляции при вызове t().
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 | Директория локалей. |
--watch | false | Автоматически перегенерировать при изменении файла локали. |
Пример сгенерированного файла:
// 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 компилятор будет выдавать ошибку на неизвестных ключах:
const { t } = useT()
t('buttons.submit') // ✓
t('buttons.submitt') // ✗ ошибка TypeScriptsplit — разбить монолитную локаль на неймспейсы
Разбивает каждый {locale}.json на файлы по неймспейсам: {locale}/{namespace}.json.
vue-i18n-kit split
vue-i18n-kit split --dir src/locales --out src/locales/split --dry| Флаг | По умолчанию | Описание |
|---|---|---|
--dir <path> | localesDir из конфига | Исходная директория локалей. |
--out <path> | <dir>/split | Выходная директория. |
--dry | false | Предпросмотр без записи файлов. |
merge-ns — слить файлы неймспейсов обратно в плоский JSON
Обратная операция к split: читает все файлы *.json в каждой поддиректории локали и сливает их в единый {locale}.json.
vue-i18n-kit merge-ns
vue-i18n-kit merge-ns --dir src/locales/split --out src/locales --dry