Skip to content

i18n Kit ​

Переиспользуемый плагин локализации для Vue 3, который оборачивает vue-i18n и предоставляет готовый к использованию слой интеграции — настройте один раз, переиспользуйте в каждом проекте команды.

Возможности ​

  • Настройка в одну строку — установите плагин в main.ts и сразу начните использовать composables
  • Двухметодный API перевода — t(key, vars?) для простых строк, tm(key, vars) для ICU-плюрализованных строк; оба из useT()
  • ICU-плюрализация — на основе Intl.PluralRules с именованными CLDR-категориями (one, few, many, …); корректна для любого языка, включая арабский (6 форм)
  • Ленивая загрузка — файлы локалей JSON загружаются по требованию; при старте загружается только активная локаль
  • Разделение по namespace — разбивайте крупные файлы локалей по фичам и лениво загружайте неймспейсы по требованию через useNamespace()
  • Сохранение локали — выбранный язык автоматически сохраняется в localStorage и восстанавливается при следующем визите
  • Резервная локаль — отсутствующие ключи перевода прозрачно откатываются на настроенный резервный язык
  • Метаданные локали — прикрепите любые пользовательские данные к локали (display, flag, author, …) и читайте их через useLocale и useAvailableLocales
  • Форматирование дат/чисел/валют — useFormat оборачивает Intl и всегда использует активную локаль
  • Сервис плагина — createVueI18nPlugin возвращает I18nPlugin со свойством .service — полностью доступным вне компонентов Vue (route guards, хранилища Pinia, точки входа SSR)
  • Хук изменения локали — service.onLocaleChange(cb) срабатывает после каждого успешного переключения локали; возвращает функцию отписки
  • TypeScript-first — все публичные API полностью типизированы, any не просачивается в код потребителя
  • Vite check-плагин — проверяет все файлы локалей на отсутствующие или лишние ключи при сборке (импорт из vue-i18n-kit/vite)
  • Vite inline-плагин — vueI18nInlinePlugin встраивает весь JSON локалей в бандл как статический виртуальный модуль — ноль HTTP-запросов во время выполнения
  • Vite namespace-плагин — vueI18nNamespacePlugin сканирует директории с разбитыми локалями и генерирует виртуальный модуль с динамическими импортами по неймспейсам
  • Контекстный редактор переводов — vueI18nDevPlugin показывает иконку карандаша над каждой переведённой строкой во время разработки; клик открывает инлайн-редактирование
  • CLI — vue-i18n-kit init / add / check / merge / prune скаффолдит, аудирует и очищает файлы локалей из терминала
  • Слияние словарей — vue-i18n-kit merge глубоко сливает общий/корпоративный базовый словарь в файлы локалей проекта
  • Удаление мёртвых ключей — vue-i18n-kit prune удаляет ключи, на которые нет ссылок нигде в исходном коде
  • Базовый словарь (extends) — поле extends в i18n-kit.config.json загружает общую директорию локалей и сливает её под ключи проекта
  • Заблокированные ключи — объявите неизменяемые ключи в базовом конфиге; редактор показывает их только для чтения, сервер отклоняет правки с 403, инструменты CLI никогда их не трогают
  • Правила валидации — настройте rules в i18n-kit.config.json, чтобы настроить пороги длины, шаблоны плейсхолдеров, предупреждения HTML/ICU для каждого проекта
  • Списки исключений — ignore.prune, ignore.duplicates, ignore.unused, ignore.scanExclude защищают динамические ключи, названия бренда и тестовые файлы
  • Алфавитное слияние — merge теперь всегда сортирует результирующие ключи по алфавиту (как sort); используйте --no-sort, чтобы отключить
  • Генерация типов TypeScript — vue-i18n-kit types генерирует union-тип TranslationKey из файлов локалей; режим --watch перегенерирует при изменении
  • Обнаружение устаревших переводов — отслеживает изменения референсных значений и помечает переводы в других локалях как устаревшие; команда CLI stale + фильтр в редакторе + кнопка «Отметить как проверенное»
  • Экспорт XLIFF / PO — vue-i18n-kit export генерирует отраслевые стандартные файлы XLIFF 1.2 или Gettext PO для профессиональных переводчиков; заметки переводчика включены
  • Импорт XLIFF / PO — vue-i18n-kit import читает завершённые файлы XLIFF или PO обратно в JSON локали
  • Отчёт о покрытии — vue-i18n-kit stats выводит процент заполненности по локали и неймспейсу в консоль; --format json для CI-конвейеров; --format html для самодостаточного визуального отчёта
  • Машинный перевод — автоперевод отсутствующих ключей через LibreTranslate или DeepL (500 тыс. символов/месяц бесплатно); плейсхолдеры ICU и формы множественного числа кодируются как непрозрачные XML-теги, чтобы пережить перевод неизменными
  • UI редактора локалей — браузерный редактор с дашбордом, инлайн-редактированием, групповыми операциями, обнаружением фантомных ключей, предпросмотром форм множественного числа, фильтром устаревших переводов, экспортом-импортом XLIFF/PO и многим другим