Skip to content

Карта локалей (внутренности редактора)

vueI18nMapPlugin — Vite-плагин, который записывает на диск карту локалей при запуске Vite в режиме --mode i18n-dump, а затем сразу завершает процесс. Он существует, чтобы снабжать данными UI редактора локалей — обычно вы никогда не вызываете его напрямую. vue-i18n-kit init и vue-i18n-kit auto-config сами вставляют его в vite.config.ts/nuxt.config.ts.

ts
// vite.config.ts
import { vueI18nMapPlugin } from 'vue-i18n-kit/vite'

export default defineConfig({
  plugins: [
    vueI18nMapPlugin({
      locales: {
        en: { path: 'src/locales/en.json', meta: { display: 'English', flag: '🇬🇧' } },
        ru: { path: 'src/locales/ru.json', meta: { display: 'Русский', flag: '🇷🇺' } },
      },
    }),
  ],
})
json
// package.json
{
  "scripts": {
    "i18n:ui": "vite --mode i18n-dump && vue-i18n-kit ui"
  }
}

Карта перегенерируется каждый раз перед запуском редактора. Сгенерированные файлы можно добавить в .gitignore.

Опции

locales

Record<string, string | { path, meta? }>, обязательна. Соответствие кодов локалей их путям к файлам и опциональным метаданным. Принимает либо строку-путь, либо объект { path, meta }.

output

string · по умолчанию: 'i18n-tools/locales.config.json'. Путь для сгенерированной карты локалей относительно корня проекта.

Что записывается

Когда Vite запускается с --mode i18n-dump, плагин записывает два файла во время configResolved, а затем завершает процесс:

  • <output> (locales.config.json по умолчанию) — { root, generatedAt, locales: [{ code, path, meta? }] }, по одной записи на каждую настроенную локаль.
  • locales.entries.json (в той же директории, что и <output>) — карта записей по результатам сканирования исходников, построенная тем же способом, что и vue-i18n-kit stats/prune, используется картой использования редактора и обнаружением неиспользуемых/фантомных ключей.

Оба файла читаются src/ui-server/server.ts при запуске редактора — это механизм, который позволяет редактору узнать, какие файлы локалей существуют и какие исходные файлы ссылаются на какие ключи, без повторного сканирования всего проекта при каждом запросе.