Справочник API
Типы времени выполнения
Все публичные типы реэкспортируются для использования в проектах-потребителях:
import type {
// Плагин
I18nPluginOptions,
I18nPlugin, // тип возврата createVueI18nPlugin — Plugin & { service }
I18nService, // { locale, isLoading, setLocale, availableLocales, onLocaleChange, loadNamespace, isNamespaceLoaded }
// Типы записи локали
LocaleMessages, // Record<string, unknown>
LocaleEntry, // LocaleMessages | LocaleLoader | LocaleDefinition
LocaleDefinition, // { messages, meta? }
LocaleInfo, // { code, meta } — возвращается useAvailableLocales
// Формы возврата composables
UseLocaleReturn,
UseTReturn,
UseAvailableLocalesReturn,
UseFormatReturn,
UsePluralizeReturn,
UseNamespaceReturn,
// Плюрализация
PluralVars, // Record<string, string | number>
} from 'vue-i18n-kit'Что именно содержит каждая форма — см. страницы Настройка плагина, Сервис плагина и раздел Composables.
Типизация метаданных локали
Определите общепроектный интерфейс для формы вашего meta и передайте его как generic в оба composables:
// types/i18n.ts
export interface AppLocaleMeta {
display: string // человекочитаемое имя локали
flag?: string // эмодзи-флаг, опционально
author?: string // указание переводчика, опционально
}import type { AppLocaleMeta } from '@/types/i18n'
import { useLocale, useAvailableLocales } from 'vue-i18n-kit'
const { localeMeta } = useLocale<AppLocaleMeta>()
localeMeta.value?.display // string | undefined ✓
const { availableLocales } = useAvailableLocales<AppLocaleMeta>()
availableLocales.value[0].meta?.flag // string | undefined ✓Типы схемы конфига
I18nKitConfig, LocaleConfig, LocaleMeta, I18nKitRules и I18nKitIgnore — типы, стоящие за i18n-kit.config.json (см. Конфигурацию) — экспортируются как types-only сабпуть:
import type { I18nKitConfig, I18nKitRules, I18nKitIgnore } from 'vue-i18n-kit/config'
const rules: I18nKitRules = {
warnOnHtmlTags: true,
lengthWarningFactor: 3,
}У vue-i18n-kit/config нет экспортов времени выполнения — импорт чего-либо кроме import type { ... } из него разрешается в пустой модуль.
I18nKitConfig
Полная форма i18n-kit.config.json, задокументирована поле за полем на странице Конфигурация. Полезен для типизации вручную написанного или сгенерированного программно конфиг-файла:
import type { I18nKitConfig } from 'vue-i18n-kit/config'
const config: I18nKitConfig = {
version: 1,
localesDir: './locales',
locales: [{ code: 'en', path: 'en.json' }],
}LocaleConfig
Запись одной зарегистрированной локали внутри I18nKitConfig.locales: code, path, опциональный meta (см. LocaleMeta ниже), а также временные метки createdAt/updatedAt, которые пишут CLI и редактор.
LocaleMeta
Собственная форма метаданных локали в конфиг-файле: display?: string, flag?: string, direction?: 'ltr' | 'rtl', author?: string, version?: string, плюс открытая индексная сигнатура для произвольных полей. Это другой, специфичный для конфиг-файла тип, отличный от рантайм-типа LocaleDefinition.meta: TMeta, используемого в useLocale() и useAvailableLocales() — тот полностью определяется потребителем через дженерик, а этот описывает, что CLI и редактор читают и пишут в i18n-kit.config.json.
I18nKitRules
Поля: interpolationPatterns?: string[], lengthWarningFactor?: number, warnOnHtmlTags?: boolean, warnOnIcuErrors?: boolean, warnOnDuplicateValues?: boolean, minValueLength?: number. Дефолты и поведение — см. Правила валидации.
I18nKitIgnore
Поля: prune?: string[], duplicates?: string[], unused?: string[], scanExclude?: string[]. Дефолты и поведение — см. Списки исключений.