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 и многим другим