Skip to content

Справочник API

Типы времени выполнения

Все публичные типы реэкспортируются для использования в проектах-потребителях:

ts
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:

ts
// types/i18n.ts
export interface AppLocaleMeta {
  display: string // человекочитаемое имя локали
  flag?: string // эмодзи-флаг, опционально
  author?: string // указание переводчика, опционально
}
ts
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  ✓

Типы схемы конфига

I18nKitRules и I18nKitIgnore — типы, стоящие за полями rules и ignore в i18n-kit.config.json (см. Конфигурацию) — экспортируются как types-only сабпуть:

ts
import type { I18nKitRules, I18nKitIgnore } from 'vue-i18n-kit/config'

const rules: I18nKitRules = {
  warnOnHtmlTags: true,
  lengthWarningFactor: 3,
}

У vue-i18n-kit/config нет экспортов времени выполнения — импорт чего-либо кроме import type { ... } из него разрешается в пустой модуль.

I18nKitRules

Поля: interpolationPatterns?: string[], lengthWarningFactor?: number, warnOnHtmlTags?: boolean, warnOnIcuErrors?: boolean, warnOnDuplicateValues?: boolean, minValueLength?: number. Дефолты и поведение — см. Правила валидации.

I18nKitIgnore

Поля: prune?: string[], duplicates?: string[], unused?: string[], scanExclude?: string[]. Дефолты и поведение — см. Списки исключений.

I18nKitConfig

Полная форма i18n-kit.config.json — не экспортируется из vue-i18n-kit/config (включает Node-специфичные поля вроде integrations.viteConfigPath), задокументирована поле за полем на странице Конфигурация.