Skip to content

Composition API

Composer

Интерфейсы Composer

Подпись:

typescript
export interface Composer<Messages extends Record<string, any> = {}, DateTimeFormats extends Record<string, any> = {}, NumberFormats extends Record<string, any> = {}, OptionLocale = Locale, ResourceLocales = PickupLocales<NonNullable<Messages>> | PickupLocales<NonNullable<DateTimeFormats>> | PickupLocales<NonNullable<NumberFormats>>, Locales = Locale extends GeneratedLocale ? GeneratedLocale : OptionLocale extends Locale ? IsNever<ResourceLocales> extends true ? Locale : ResourceLocales : OptionLocale | ResourceLocales> extends ComposerCustom

Подробности

Это интерфейс для использования в Vue 3 Composition API.

availableLocales

Подпись:

typescript
readonly availableLocales: ComputedRef<Locales[]>;

Подробности

Список доступных локалей в messages в лексикографическом порядке.

d

Форматирование даты и времени

Подпись:

typescript
d: ComposerDateTimeFormatting<DateTimeFormats, Locales, RemoveIndexSignature<{
        [K in keyof DefineDateTimeFormat]: DefineDateTimeFormat[K];
    }>>;

Подробности

О функциях подробнее, см. ComposerDateTimeFormatting

datetimeFormats

Подпись:

typescript
readonly datetimeFormats: ComputedRef<{
        [K in keyof DateTimeFormats]: DateTimeFormats[K];
    }>;

Подробности

Форматы даты и времени локализации.

См. также:

escapeParameter

Подпись:

typescript
escapeParameter: boolean;

Подробности

Являются ли параметры интерполяции экранированными до перевода сообщения.

См. также:

fallbackFormat

Подпись:

typescript
fallbackFormat: boolean;

Подробности

Подавлять ли предупреждения при возврате к fallbackLocale или корневому уровню.

См. также:

fallbackLocale

Подпись:

typescript
fallbackLocale: WritableComputedRef<FallbackLocales<Locales>>;

Подробности

Текущие локали возврата, используемые этим экземпляром Composer.

См. также:

fallbackRoot

Подпись:

typescript
fallbackRoot: boolean;

Подробности

Возвращаться ли к глобальному уровню (области видимости) локализации при сбое локализации.

См. также:

fallbackWarn

Подпись:

typescript
fallbackWarn: boolean | RegExp;

Подробности

Подавлять ли предупреждения при возврате к значениям по умолчанию при сбое локализации.

См. также:

id

Подпись:

typescript
id: number;

Подробности

ID экземпляра.

inheritLocale

Подпись:

typescript
inheritLocale: boolean;

Подробности

Наследовать ли корневой уровень локали для компонента локализации.

См. также:

isGlobal

Подпись:

typescript
readonly isGlobal: boolean;

Подробности

Является ли этот экземпляр composer глобальным

locale

Подпись:

typescript
locale: WritableComputedRef<Locales>;

Подробности

Текущая локаль, используемая этим экземпляром Composer.

Если локаль содержит территорию и диалект, то эта локаль содержит неявное значение по умолчанию.

См. также:

messages

Подпись:

typescript
readonly messages: ComputedRef<{
        [K in keyof Messages]: Messages[K];
    }>;

Подробности

Сообщения локализации.

См. также:

missingWarn

Подпись:

typescript
missingWarn: boolean | RegExp;

Подробности

Подавлять ли вывод предупреждений при сбое локализации.

См. также:

modifiers

Подпись:

typescript
readonly modifiers: LinkedModifiers<VueMessageType>;

Подробности

Пользовательские модификаторы для связанных сообщений.

См. также:

n

Форматирование чисел

Подпись:

typescript
n: ComposerNumberFormatting<NumberFormats, Locales, RemoveIndexSignature<{
        [K in keyof DefineNumberFormat]: DefineNumberFormat[K];
    }>>;

Подробности

О функциях подробнее, см. ComposerNumberFormatting

numberFormats

Подпись:

typescript
readonly numberFormats: ComputedRef<{
        [K in keyof NumberFormats]: NumberFormats[K];
    }>;

Подробности

Форматы чисел локализации.

См. также:

pluralRules

Подпись:

typescript
readonly pluralRules: PluralizationRules;

Подробности

Набор правил для словоформ множественного числа

См. также:

rt

Разрешение перевода сообщения локали

Подпись:

typescript
rt: ComposerResolveLocaleMessageTranslation<Locales>;

Подробности

О функциях подробнее, см. ComposerResolveLocaleMessageTranslation

t

Перевод сообщений локали

Подпись:

typescript
t: ComposerTranslation<Messages, Locales, RemoveIndexSignature<{
        [K in keyof DefineLocaleMessage]: DefineLocaleMessage[K];
    }>>;

Подробности

О функциях подробнее, см. ComposerTranslation

warnHtmlMessage

Подпись:

typescript
warnHtmlMessage: boolean;

Подробности

Разрешается ли использование сообщений локали с форматированием HTML.

Если вы установите false, будет проверяться сообщения локали на экземпляре Composer.

Если вы укажете true, будет выводиться предупреждение в консоли.

См. также:

getDateTimeFormat(locale)

Получить формат даты и времени

Подпись:

typescript
getDateTimeFormat<DateTimeSchema extends Record<string, any> = never, LocaleSchema extends string = string, Locale extends PickupLocales<NonNullable<DateTimeFormats>> = PickupLocales<NonNullable<DateTimeFormats>>, Return = IsNever<DateTimeSchema> extends true ? IsEmptyObject<DateTimeFormats> extends true ? RemoveIndexSignature<{
        [K in keyof DefineDateTimeFormat]: DefineDateTimeFormat[K];
    }> : NonNullable<DateTimeFormats>[Locale] : DateTimeSchema>(locale: LocaleSchema | Locale): Return;

Параметры типа

ПараметрОписание
DateTimeSchemaСхема формата даты и времени, по умолчанию never

Подробности

Получить формат даты и времени из экземпляра Composer.

Параметры

ПараметрТипОписание
localeLocaleSchema | LocaleЦелевая локаль

Возвращает

Формат даты и времени

getLocaleMessage(locale)

Получить сообщение локали

Подпись:

typescript
getLocaleMessage<MessageSchema extends LocaleMessage<VueMessageType> = never, LocaleSchema extends string = string, Locale extends PickupLocales<NonNullable<Messages>> = PickupLocales<NonNullable<Messages>>, Return = IsNever<MessageSchema> extends true ? IsEmptyObject<Messages> extends true ? RemoveIndexSignature<{
        [K in keyof DefineLocaleMessage]: DefineLocaleMessage[K];
    }> : NonNullable<Messages>[Locale] : MessageSchema>(locale: LocaleSchema | Locale): Return;

Параметры типа

ПараметрОписание
MessageSchemaСхема сообщений локали, по умолчанию never

Подробности

Получить сообщение локали из экземпляра Composer.

Параметры

ПараметрТипОписание
localeLocaleSchema | LocaleЦелевая локаль

Возвращает

Сообщения локали

getMissingHandler()

Получить обработчик отсутствующих значений

Подпись:

typescript
getMissingHandler(): MissingHandler | null;

Параметры

ПараметрТипОписание

Возвращает

MissingHandler

getNumberFormat(locale)

Получить формат числа

Подпись:

typescript
getNumberFormat<NumberSchema extends Record<string, any> = never, LocaleSchema extends string = string, Locale extends PickupLocales<NonNullable<NumberFormats>> = PickupLocales<NonNullable<NumberFormats>>, Return = IsNever<NumberSchema> extends true ? IsEmptyObject<NumberFormats> extends true ? RemoveIndexSignature<{
        [K in keyof DefineNumberFormat]: DefineNumberFormat[K];
    }> : NonNullable<NumberFormats>[Locale] : NumberSchema>(locale: LocaleSchema | Locale): Return;

Параметры типа

ПараметрОписание
NumberSchemaСхема формата числа, по умолчанию never

Подробности

Получить формат числа из экземпляра Composer.

Параметры

ПараметрТипОписание
localeLocaleSchema | LocaleЦелевая локаль

Возвращает

Формат числа

getPostTranslationHandler()

Получить обработчик пост-перевода

Подпись:

typescript
getPostTranslationHandler(): PostTranslationHandler<VueMessageType> | null;

Параметры

ПараметрТипОписание

Возвращает

mergeDateTimeFormat(locale, format)

Объединить формат даты и времени

Подпись:

typescript
mergeDateTimeFormat<DateTimeSchema extends Record<string, any> = never, LocaleSchema extends string = string, Locale extends PickupLocales<NonNullable<DateTimeFormats>> = PickupLocales<NonNullable<DateTimeFormats>>, Formats = IsNever<DateTimeSchema> extends true ? Record<string, any> : DateTimeSchema>(locale: LocaleSchema | Locale, format: Formats): void;

Параметры типа

ПараметрОписание
DateTimeSchemaСхема формата даты и времени, по умолчанию never

Подробности

Объединить формат даты и времени с экземпляром Composer.

Параметры

ПараметрТипОписание
localeLocaleSchema | LocaleЦелевая локаль
formatFormatsЦелевой формат даты и времени

mergeLocaleMessage(locale, message)

Объединить сообщение локали

Подпись:

typescript
mergeLocaleMessage<MessageSchema extends LocaleMessage<VueMessageType> = never, LocaleSchema extends string = string, Locale extends PickupLocales<NonNullable<Messages>> = PickupLocales<NonNullable<Messages>>, Message = IsNever<MessageSchema> extends true ? Record<string, any> : MessageSchema>(locale: LocaleSchema | Locale, message: Message): void;

Параметры типа

ПараметрОписание
MessageSchemaСхема сообщений локали, по умолчанию never

Подробности

Объединить сообщение локали с экземпляром Composer.

Параметры

ПараметрТипОписание
localeLocaleSchema | LocaleЦелевая локаль
messageMessageСообщение

mergeNumberFormat(locale, format)

Объединить формат чисел

Подпись:

typescript
mergeNumberFormat<NumberSchema extends Record<string, any> = never, LocaleSchema extends string = string, Locale extends PickupLocales<NonNullable<NumberFormats>> = PickupLocales<NonNullable<NumberFormats>>, Formats = IsNever<NumberSchema> extends true ? Record<string, any> : NumberSchema>(locale: LocaleSchema | Locale, format: Formats): void;

Параметры типа

ПараметрОписание
NumberSchemaСхема формата числа, по умолчанию never

Подробности

Объединить формат чисел с экземпляром Composer.

Параметры

ПараметрТипОписание
localeLocaleSchema | LocaleЦелевая локаль
formatFormatsЦелевой формат числа

setDateTimeFormat(locale, format)

Установить формат даты и времени

Подпись:

typescript
setDateTimeFormat<DateTimeSchema extends Record<string, any> = never, LocaleSchema extends string = string, Locale extends PickupLocales<NonNullable<DateTimeFormats>> = PickupLocales<NonNullable<DateTimeFormats>>, FormatsType = IsNever<DateTimeSchema> extends true ? IsEmptyObject<DateTimeFormats> extends true ? RemoveIndexSignature<{
        [K in keyof DefineDateTimeFormat]: DefineDateTimeFormat[K];
    }> : NonNullable<DateTimeFormats>[Locale] : DateTimeSchema, Formats extends FormatsType = FormatsType>(locale: LocaleSchema | Locale, format: Formats): void;

Параметры типа

ПараметрОписание
DateTimeSchemaСхема формата даты и времени, по умолчанию never

Подробности

Установить формат даты и времени для экземпляра Composer.

Параметры

ПараметрТипОписание
localeLocaleSchema | LocaleЦелевая локаль
formatFormatsЦелевой формат даты и времени

setLocaleMessage(locale, message)

Установить сообщение локали

Подпись:

typescript
setLocaleMessage<MessageSchema extends LocaleMessage<VueMessageType> = never, LocaleSchema extends string = string, Locale extends PickupLocales<NonNullable<Messages>> = PickupLocales<NonNullable<Messages>>, MessageType = IsNever<MessageSchema> extends true ? IsEmptyObject<Messages> extends true ? RemoveIndexSignature<{
        [K in keyof DefineLocaleMessage]: DefineLocaleMessage[K];
    }> : NonNullable<Messages>[Locale] : MessageSchema, Message extends MessageType = MessageType>(locale: LocaleSchema | Locale, message: Message): void;

Параметры типа

ПараметрОписание
MessageSchemaСхема сообщений локали, по умолчанию never

Подробности

Установить сообщение локали для экземпляра Composer.

Параметры

ПараметрТипОписание
localeLocaleSchema | LocaleЦелевая локаль
messageMessageСообщение

setMissingHandler(handler)

Установить обработчик отсутствующих значений

Подпись:

typescript
setMissingHandler(handler: MissingHandler | null): void;

Параметры

ПараметрТипОписание
handlerMissingHandler | nullMissingHandler

setNumberFormat(locale, format)

Установить формат чисел

Подпись:

typescript
setNumberFormat<NumberSchema extends Record<string, any> = never, LocaleSchema extends string = string, Locale extends PickupLocales<NonNullable<NumberFormats>> = PickupLocales<NonNullable<NumberFormats>>, FormatsType = IsNever<NumberSchema> extends true ? IsEmptyObject<NumberFormats> extends true ? RemoveIndexSignature<{
        [K in keyof DefineNumberFormat]: DefineNumberFormat[K];
    }> : NonNullable<NumberFormats>[Locale] : NumberSchema, Formats extends FormatsType = FormatsType>(locale: LocaleSchema | Locale, format: Formats): void;

Параметры типа

ПараметрОписание
NumberSchemaСхема формата числа, по умолчанию never

Подробности

Установить формат чисел для экземпляра Composer.

Параметры

ПараметрТипОписание
localeLocaleSchema | LocaleЦелевая локаль
formatFormatsЦелевой формат числа

setPostTranslationHandler(handler)

Установить обработчик пост-перевода

Подпись:

typescript
setPostTranslationHandler(handler: PostTranslationHandler<VueMessageType> | null): void;

Параметры

ПараметрТипОписание
handlerPostTranslationHandler<VueMessageType> | nullОбработчик

te(key, locale)

Существует ли перевод сообщения локали

Подпись:

typescript
te<Str extends string, Key extends PickupKeys<Messages> = PickupKeys<Messages>>(key: Str | Key, locale?: Locales): boolean;

Подробности

Существует ли сообщение локали в экземпляре Composer.

Если вы указали locale, проверьте сообщения локали locale.

Параметры

ПараметрТипОписание
keyStr | KeyКлюч целевого сообщения локали
localeLocalesЛокаль, которая будет использована вместо глобальной или локальной области видимости

Возвращает

Если сообщение локали найдено, true, иначе false. Обратите внимание, что false возвращается даже если значение присутствует в ключе, но не может быть переведено. Однако если translateExistCompatible установлен в true, он вернет true, если ключ доступен, даже если значение не может быть переведено.

tm(key)

Получатель сообщений локали

Подпись:

typescript
tm<Key extends string, ResourceKeys extends PickupKeys<Messages> = PickupKeys<Messages>, Locale extends PickupLocales<NonNullable<Messages>> = PickupLocales<NonNullable<Messages>>, Target = IsEmptyObject<Messages> extends false ? NonNullable<Messages>[Locale] : RemoveIndexSignature<{
        [K in keyof DefineLocaleMessage]: DefineLocaleMessage[K];
    }>, Return = ResourceKeys extends ResourcePath<Target> ? ResourceValue<Target, ResourceKeys> : Record<string, any>>(key: Key | ResourceKeys): Return;

Подробности

Если I18nScope 'local' или некоторые UseI18nOptions указаны в useI18n, то они будут переведены с приоритетом локальной области видимости сообщений локали по сравнению с глобальной областью видимости сообщений локали.

На основе текущей locale сообщения локали будут возвращены из сообщений экземпляра Composer.

Если вы измените locale, то возвращаемые сообщения локали также будут соответствовать этой локали.

Если в сообщениях экземпляра Composer нет сообщений локали для заданного key, они будут возвращены с возвратом к значениям по умолчанию.

[!WARNING] Вам нужно использовать rt для сообщений локали, возвращенных tm. См. детали rt.

Параметры

ПараметрТипОписание
keyKey | ResourceKeysКлюч целевого сообщения локали

Возвращает

Сообщения локали

Примеры

Блок шаблона:

html
<div class="container">
  <template v-for="content in tm('contents')">
    <h2>{{ rt(content.title) }}</h2>
    <p v-for="paragraph in content.paragraphs">
     {{ rt(paragraph) }}
    </p>
  </template>
</div>

Блок скрипта:

js
import { defineComponent } from 'vue
import { useI18n } from 'vue-i18n'

export default defineComponent({
  setup() {
    const { rt, tm } = useI18n({
      messages: {
        en: {
          contents: [
            {
              title: 'Title1',
              // ...
              paragraphs: [
                // ...
              ]
            }
          ]
        }
      }
      // ...
    })
    // ...
    return { ... , rt, tm }
  }
})

ComposerAdditionalOptions

Дополнительные опции Composer для useI18n

Подпись:

typescript
export interface ComposerAdditionalOptions

Подробности

ComposerAdditionalOptions расширяет ComposerOptions, поэтому вы можете указать эти опции.

useScope

ComposerCustom

Пользовательское определение типа Composer

Подпись:

typescript
export interface ComposerCustom

Подробности

Интерфейс, который можно расширить для Composer.

Тип, определенный сторонними разработчиками (например, nuxt/i18n)

Примеры

ts
// vue-i18n.d.ts (файл .d.ts вашего приложения)

declare module 'vue-i18n' {
  interface ComposerCustom {
    localeCodes: string[]
  }
}

ComposerDateTimeFormatting

Функции форматирования даты и времени

Подпись:

typescript
export interface ComposerDateTimeFormatting<DateTimeFormats extends Record<string, any> = {}, Locales = 'en-US', DefinedDateTimeFormat extends RemovedIndexResources<DefineDateTimeFormat> = RemovedIndexResources<DefineDateTimeFormat>, C = IsEmptyObject<DefinedDateTimeFormat> extends false ? PickupFormatPathKeys<{
    [K in keyof DefinedDateTimeFormat]: DefinedDateTimeFormat[K];
}> : never, M = IsEmptyObject<DateTimeFormats> extends false ? PickupFormatKeys<DateTimeFormats> : never, ResourceKeys extends C | M = IsNever<C> extends false ? IsNever<M> extends false ? C | M : C : IsNever<M> extends false ? M : never>

Подробности

Это интерфейс для Composer

(value: number | Date | string): string;

Форматирование даты и времени

Подпись:

typescript
(value: number | Date | string): string;

Подробности

Если используется в реактивном контексте, оно будет переоценено после изменения локали.

Если 'local' или некоторые UseI18nOptions указаны в useI18n, то они будут переведены с приоритетом локальной области видимости форматов даты и времени по сравнению с глобальной областью видимости форматов даты и времени.

Если нет, то форматируется с использованием глобальных форматов даты и времени.

См. также:

Параметры

ПараметрТипОписание
valuenumber | Date | stringЗначение, число метки времени или экземпляр Date или строка ISO 8601

Возвращает

Отформатированное значение

(value: Value, keyOrOptions: OptionsType): IsPart<OptionsType> extends true ? Intl.DateTimeFormatPart[] : string;

Форматирование даты и времени

Подпись:

typescript
<Value extends number | Date | string = number, Key extends string = string, OptionsType extends Key | ResourceKeys | DateTimeOptions<Key | ResourceKeys, Locales> = Key | ResourceKeys | DateTimeOptions<Key | ResourceKeys, Locales>>(value: Value, keyOrOptions: OptionsType): IsPart<OptionsType> extends true ? Intl.DateTimeFormatPart[] : string;

Подробности

Перегрузка d.

В этой перегрузке d форматирует дату и время в формате, зарегистрированном в форматах даты и времени.

Параметры

ПараметрТипОписание
valueValueЗначение, число метки времени или экземпляр Date или строка ISO 8601
keyOrOptionsOptionsTypeКлюч форматов даты и времени или дополнительные параметры для форматирования даты и времени

Возвращает

Отформатированное значение

(value: Value, keyOrOptions: OptionsType, locale: Locales): IsPart<OptionsType> extends true ? Intl.DateTimeFormatPart[] : string;

Форматирование даты и времени

Подпись:

typescript
<Value extends number | Date | string = number, Key extends string = string, OptionsType extends Key | ResourceKeys | DateTimeOptions<Key | ResourceKeys, Locales> = Key | ResourceKeys | DateTimeOptions<Key | ResourceKeys, Locales>>(value: Value, keyOrOptions: OptionsType, locale: Locales): IsPart<OptionsType> extends true ? Intl.DateTimeFormatPart[] : string;

Подробности

Перегрузка d.

В этой перегрузке d форматирует дату и время в формате, зарегистрированном в форматах даты и времени для целевой локали.

Параметры

ПараметрТипОписание
valueValueЗначение, число метки времени или экземпляр Date или строка ISO 8601
keyOrOptionsOptionsTypeКлюч форматов даты и времени или дополнительные параметры для форматирования даты и времени
localeLocalesЛокаль, которая будет использована вместо глобальной или локальной области видимости.

Возвращает

Отформатированное значение

Функции форматирования чисел

Подпись:

typescript
export interface ComposerNumberFormatting<NumberFormats extends Record<string, any> = {}, Locales = 'en-US', DefinedNumberFormat extends RemovedIndexResources<DefineNumberFormat> = RemovedIndexResources<DefineNumberFormat>, C = IsEmptyObject<DefinedNumberFormat> extends false ? PickupFormatPathKeys<{
    [K in keyof DefinedNumberFormat]: DefinedNumberFormat[K];
}> : never, M = IsEmptyObject<NumberFormats> extends false ? PickupFormatKeys<NumberFormats> : never, ResourceKeys extends C | M = IsNever<C> extends false ? IsNever<M> extends false ? C | M : C : IsNever<M> extends false ? M : never>

Подробности

Это интерфейс для Composer

(value: number): string;

Форматирование чисел

Подпись:

typescript
(value: number): string;

Подробности

Если используется в реактивном контексте, оно будет переоценено после изменения локали.

Если 'local' или некоторые UseI18nOptions указаны в useI18n, то они будут переведены с приоритетом локальной области видимости форматов даты и времени по сравнению с глобальной областью видимости форматов даты и времени.

Если нет, то форматируется с использованием глобальных форматов чисел.

См. также:

Параметры

ПараметрТипОписание
valuenumberЧисловое значение

Возвращает

Отформатированное значение

(value: number, keyOrOptions: OptionsType): IsPart<OptionsType> extends true ? Intl.NumberFormatPart[] : string;

Форматирование чисел

Подпись:

typescript
<Key extends string = string, OptionsType extends Key | ResourceKeys | NumberOptions<Key | ResourceKeys, Locales> = Key | ResourceKeys | NumberOptions<Key | ResourceKeys, Locales>>(value: number, keyOrOptions: OptionsType): IsPart<OptionsType> extends true ? Intl.NumberFormatPart[] : string;

Подробности

Перегрузка n.

В этой перегрузке n форматирует число в формате, зарегистрированном в форматах чисел.

Параметры

ПараметрТипОписание
valuenumberЧисловое значение
keyOrOptionsOptionsTypeКлюч форматов чисел или дополнительные параметры для форматирования чисел

Возвращает

Отформатированное значение

(value: number, keyOrOptions: OptionsType, locale: Locales): IsPart<OptionsType> extends true ? Intl.NumberFormatPart[] : string;

Форматирование чисел

Подпись:

typescript
<Key extends string = string, OptionsType extends Key | ResourceKeys | NumberOptions<Key | ResourceKeys, Locales> = Key | ResourceKeys | NumberOptions<Key | ResourceKeys, Locales>>(value: number, keyOrOptions: OptionsType, locale: Locales): IsPart<OptionsType> extends true ? Intl.NumberFormatPart[] : string;

Подробности

Перегрузка n.

В этой перегрузке n форматирует число в формате, зарегистрированном в форматах чисел для целевой локали.

Параметры

ПараметрТипОписание
valuenumberЧисловое значение
keyOrOptionsOptionsTypeКлюч форматов чисел или дополнительные параметры для форматирования чисел
localeLocalesЛокаль, которая будет использована вместо глобальной или локальной области видимости.

Возвращает

Отформатированное значение

ComposerOptions

Опции Composer

Подпись:

typescript
export interface ComposerOptions<Schema extends {
    message?: unknown;
    datetime?: unknown;
    number?: unknown;
} = {
    message: DefaultLocaleMessageSchema;
    datetime: DefaultDateTimeFormatSchema;
    number: DefaultNumberFormatSchema;
}, Locales extends {
    messages: unknown;
    datetimeFormats: unknown;
    numberFormats: unknown;
} | string = Locale, MessagesLocales = Locales extends {
    messages: infer M;
} ? M : Locales extends string ? Locales : Locale, DateTimeFormatsLocales = Locales extends {
    datetimeFormats: infer D;
} ? D : Locales extends string ? Locales : Locale, NumberFormatsLocales = Locales extends {
    numberFormats: infer N;
} ? N : Locales extends string ? Locales : Locale, MessageSchema = Schema extends {
    message: infer M;
} ? M : DefaultLocaleMessageSchema, DateTimeSchema = Schema extends {
    datetime: infer D;
} ? D : DefaultDateTimeFormatSchema, NumberSchema = Schema extends {
    number: infer N;
} ? N : DefaultNumberFormatSchema, _Messages extends LocaleMessages<MessageSchema, MessagesLocales, VueMessageType> = LocaleMessages<MessageSchema, MessagesLocales, VueMessageType>, _DateTimeFormats extends DateTimeFormatsType<DateTimeSchema, DateTimeFormatsLocales> = DateTimeFormatsType<DateTimeSchema, DateTimeFormatsLocales>, _NumberFormats extends NumberFormatsType<NumberSchema, NumberFormatsLocales> = NumberFormatsType<NumberSchema, NumberFormatsLocales>>

Подробности

Это опции для создания composer.

datetime

datetimeFormats

escapeParameter

Подпись:

typescript
escapeParameter?: boolean;

Подробности

Если escapeParameter установлен в true, то параметры интерполяции экранируются перед переводом сообщения.

Это полезно, когда вывод перевода используется в v-html и ресурс перевода содержит HTML-разметку (например, вокруг предоставленного пользователем значения).

Этот паттерн использования чаще всего возникает при передаче предварительно вычисленных текстовых строк в компоненты интерфейса.

Процесс экранирования подразумевает замену следующих символов их соответствующими HTML-сущностями: <, >, ", '.

Установка escapeParameter в true не должна нарушать существующую функциональность, но обеспечивает защиту от некоторых типов векторов атак XSS.

См. также:

false

fallbackFormat

Подпись:

typescript
fallbackFormat?: boolean;

Подробности

Выполнять ли интерполяцию шаблонов в ключах перевода, когда ваш язык не имеет перевода для ключа.

Если true, пропустите написание шаблонов для "базового" языка; ключи являются вашими шаблонами.

См. также:

false

fallbackLocale

Подпись:

typescript
fallbackLocale?: FallbackLocale;

Подробности

Локаль для возврата при локализации.

Для более сложных определений возврата см. возврат к значениям по умолчанию.

См. также:

По умолчанию 'en-US' для locale, если он не указан, или значение locale

fallbackRoot

Подпись:

typescript
fallbackRoot?: boolean;

Подробности

В локализации компонента, возвращаться ли к глобальному уровню (области видимости) локализации при сбое локализации.

Если false, не возвращаться к корневому уровню.

См. также:

true

fallbackWarn

Подпись:

typescript
fallbackWarn?: boolean | RegExp;

Подробности

Подавлять ли предупреждения при возврате к значениям по умолчанию для fallbackLocale или корневому уровню.

Если false, подавлять предупреждения возврата к значениям по умолчанию.

Если вы используете регулярное выражение, вы можете подавить предупреждения возврата к значениям по умолчанию, которые совпадают с ключом перевода (например, t).

См. также:

true

flatJson

Подпись:

typescript
flatJson?: boolean;

Подробности

Разрешить ли использовать плоские JSON-сообщения или нет

false

inheritLocale

Подпись:

typescript
inheritLocale?: boolean;

Подробности

Наследовать ли корневой уровень локали для локализации компонента.

Если false, независимо от корневого уровня локали, локализовать для каждой локали компонента.

См. также:

true

locale

Подпись:

typescript
locale?: Locale;

Подробности

Локаль локализации.

Если локаль содержит территорию и диалект, то эта локаль содержит неявное значение по умолчанию.

См. также:

'en-US'

message

messageCompiler

Подпись:

typescript
messageCompiler?: MessageCompiler;

Подробности

Компилятор для пользовательского формата сообщений.

Если не указан, будет использоваться стандартный компилятор сообщений vue-i18n.

Вам понадобится реализовать свой собственный компилятор сообщений, который возвращает функции сообщений.

Примеры

Вот пример использования пользовательского компилятора сообщений с intl-messageformat

js
import { createI18n } from 'vue-i18n'
import IntlMessageFormat from 'intl-messageformat'

function messageCompiler(message, { locale, key, onError }) {
  if (typeof message === 'string') {
    // Вы можете улучшить производительность вашего компилятора сообщений с помощью стратегии кэширования или мемоизации здесь
    const formatter = new IntlMessageFormat(message, locale)
    return ctx => formatter.format(ctx.values)
  } else {
    // Если вы хотите поддерживать это для AST,
    // вам нужно преобразовать локальные сообщения, такие как `json`, `yaml` и т.д. с помощью плагина сборки.
    onError && onError(new Error('not support for AST'))
    return () => key // возвращать по умолчанию с `key`
  }
}

// вызов с опцией I18n
const i18n = createI18n({
  locale: 'ja',
  messageCompiler, // установите ваш компилятор сообщений
  messages: {
    en: {
      hello: 'hello world!',
      greeting: 'hi, {name}!',
      // ICU формат сообщения
      photo: `You have {numPhotos, plural,
        =0 {no photos.}
        =1 {one photo.}
        other {# photos.}
      }`
    },
  }
})

// ниже ваша какая-то работа ...
// ...

[!TIP] 🆕 v9.3+

[!WARNING] Пользовательский формат сообщений - экспериментальная функция. Она может быть изменена или удалена в будущем.

См. также:

undefined

messageResolver

Подпись:

typescript
messageResolver?: MessageResolver;

Подробности

Разрешитель сообщений для разрешения.

Если не указан, будет использоваться внутренний разрешитель сообщений vue-i18n по умолчанию.

Вам нужно реализовать разрешитель сообщений самостоятельно, который соответствует следующим требованиям:

  • Разрешить сообщение, используя локальное сообщение, переданное в качестве первого аргумента разрешителя сообщений, и путь, переданный в качестве второго аргумента.
  • Если сообщение не может быть разрешено, необходимо вернуть null.
  • Если вы получите null, разрешитель сообщений также будет вызван при возврате к значениям по умолчанию, если включена опция возврата к значениям по умолчанию, поэтому сообщение также нужно будет разрешить.

Разрешитель сообщений вызывается косвенно следующими API:


Примеры

Вот пример установки с использованием вашего createI18n:

js
import { createI18n } from 'vue-i18n'

// ваш разрешитель сообщений
function messageResolver(obj, path) {
  // простое разрешение сообщений!
  const msg = obj[path]
  return msg != null ? msg : null
}

// вызов с опцией I18n
const i18n = createI18n({
  locale: 'ja',
  messageResolver, // установите ваш разрешитель сообщений
  messages: {
    en: { ... },
    ja: { ... }
  }
})

// ниже ваша какая-то работа ...
// ...

[!TIP] 🆕 v9.2+

[!WARNING] Если вы используете разрешитель сообщений, опция flatJson будет проигнорирована. То есть вам нужно будет разрешить плоский JSON самостоятельно.

См. также:

undefined

messages

missing

Подпись:

typescript
missing?: MissingHandler;

Подробности

Обработчик отсутствующей локализации.

Обработчик вызывается с целевой локалью локализации, ключом пути локализации, экземпляром Vue и значениями.

Если назначается обработчик отсутствующей локализации и происходит отсутствие локализации, то предупреждение не выводится.

null

missingWarn

Подпись:

typescript
missingWarn?: boolean | RegExp;

Подробности

Подавлять ли вывод предупреждений при сбое локализации.

Если false, подавлять предупреждения о сбое локализации.

Если вы используете регулярное выражение, вы можете подавить предупреждения о сбое локализации, которые совпадают с ключом перевода (например, t).

См. также:

true

modifiers

Подпись:

typescript
modifiers?: LinkedModifiers<VueMessageType>;

Подробности

Пользовательские модификаторы для связанных сообщений.

См. также:

number

numberFormats

pluralRules

Подпись:

typescript
pluralRules?: PluralizationRules;

Подробности

Набор правил для словоформ множественного числа

См. также:

{}

postTranslation

Подпись:

typescript
postTranslation?: PostTranslationHandler<VueMessageType>;

Подробности

Обработчик пост-перевода.

Обработчик вызывается после вызова t.

Этот обработчик полезен, если вы хотите фильтровать переведённый текст, например, обрезать пробелы.

null

warnHtmlMessage

Подпись:

typescript
warnHtmlMessage?: boolean;

Подробности

Разрешается ли использование сообщений локали с форматированием HTML.

См. свойство warnHtmlMessage.

См. также:

true

ComposerResolveLocaleMessageTranslation

Функции разрешения перевода сообщения локали

Подпись:

typescript
export interface ComposerResolveLocaleMessageTranslation<Locales = 'en-US'>

Подробности

Это интерфейс для Composer

(message: MessageFunction<VueMessageType> | VueMessageType): string;

Разрешение перевода сообщения локали

Подпись:

typescript
(message: MessageFunction<VueMessageType> | VueMessageType): string;

Подробности

Если используется в реактивном контексте, оно будет переоценено после изменения локали.

Если 'local' или некоторые UseI18nOptions указаны в useI18n, то они будут переведены с приоритетом локальной области видимости сообщений локали по сравнению с глобальной областью видимости сообщений локали.

Если нет, то переводится с использованием глобальных сообщений локали.

[!TIP] Применение rt для программного перевода сообщений локали с использованием tm, v-for, javascript for операторов.

[!WARNING] rt отличается от t тем, что обрабатывает сообщение локали напрямую, а не ключ сообщения локали. В rt нет внутреннего возврата к значениям по умолчанию. Вам нужно понимать и использовать структуру сообщения локали, возвращенного tm.

См. также:

Параметры

ПараметрТипОписание
messageMessageFunction<VueMessageType> | VueMessageTypeЦелевое сообщение локали для разрешения. Вам нужно указать сообщение локали, возвращенное tm.

Возвращает

Переведенное сообщение

(message: MessageFunction<VueMessageType> | VueMessageType, plural: number, options?: TranslateOptions<Locales>): string;

Разрешение перевода сообщения локали для множественного числа

Подпись:

typescript
(message: MessageFunction<VueMessageType> | VueMessageType, plural: number, options?: TranslateOptions<Locales>): string;

Подробности

Перегрузка rt.

В этой перегрузке rt возвращает множественное число переведенного сообщения.

[!TIP] Применение rt для программного перевода сообщений локали с использованием tm, v-for, javascript for операторов.

[!WARNING] rt отличается от t тем, что обрабатывает сообщение локали напрямую, а не ключ сообщения локали. В rt нет внутреннего возврата к значениям по умолчанию. Вам нужно понимать и использовать структуру сообщения локали, возвращенного tm.

См. также:

Параметры

ПараметрТипОписание
messageMessageFunction<VueMessageType> | VueMessageTypeЦелевое сообщение локали для разрешения. Вам нужно указать сообщение локали, возвращенное tm.
pluralnumberКакое множественное число получить. 1 возвращает первое.
optionsTranslateOptions<Locales>Дополнительные параметры для перевода

Возвращает

Переведенное сообщение

(message: MessageFunction<VueMessageType> | VueMessageType, list: unknown[], options?: TranslateOptions<Locales>): string;

Разрешение перевода сообщения локали для интерполяции списков

Подпись:

typescript
(message: MessageFunction<VueMessageType> | VueMessageType, list: unknown[], options?: TranslateOptions<Locales>): string;

Подробности

Перегрузка rt.

В этой перегрузке rt возвращает множественное число переведенного сообщения.

[!TIP] Применение rt для программного перевода сообщений локали с использованием tm, v-for, javascript for операторов.

[!WARNING] rt отличается от t тем, что обрабатывает сообщение локали напрямую, а не ключ сообщения локали. В rt нет внутреннего возврата к значениям по умолчанию. Вам нужно понимать и использовать структуру сообщения локали, возвращенного tm.

См. также:

Параметры

ПараметрТипОписание
messageMessageFunction<VueMessageType> | VueMessageTypeЦелевое сообщение локали для разрешения. Вам нужно указать сообщение локали, возвращенное tm.
listunknown[]Значения для интерполяции списка.
optionsTranslateOptions<Locales>Дополнительные параметры для перевода

Возвращает

Переведенное сообщение

(message: MessageFunction<VueMessageType> | VueMessageType, named: NamedValue, options?: TranslateOptions<Locales>): string;

Разрешение перевода сообщения локали для именованной интерполяции

Подпись:

typescript
(message: MessageFunction<VueMessageType> | VueMessageType, named: NamedValue, options?: TranslateOptions<Locales>): string;

Подробности

Перегрузка rt.

В этой перегрузке rt для каждого заполнителя x сообщения локали должны содержать токен {x}.

[!TIP] Применение rt для программного перевода сообщений локали с использованием tm, v-for, javascript for операторов.

[!WARNING] rt отличается от t тем, что обрабатывает сообщение локали напрямую, а не ключ сообщения локали. В rt нет внутреннего возврата к значениям по умолчанию. Вам нужно понимать и использовать структуру сообщения локали, возвращенного tm.

См. также:

Параметры

ПараметрТипОписание
messageMessageFunction<VueMessageType> | VueMessageTypeЦелевое сообщение локали для разрешения. Вам нужно указать сообщение локали, возвращенное tm.
namedNamedValueЗначения для именованной интерполяции.
optionsTranslateOptions<Locales>Дополнительные параметры для перевода

Возвращает

Переведенное сообщение

ComposerTranslation

Функции перевода сообщений локали

Подпись:

typescript
export interface ComposerTranslation<Messages extends Record<string, any> = {}, Locales = 'en-US', DefinedLocaleMessage extends RemovedIndexResources<DefineLocaleMessage> = RemovedIndexResources<DefineLocaleMessage>, C = IsEmptyObject<DefinedLocaleMessage> extends false ? JsonPaths<{
    [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K];
}> : never, M = IsEmptyObject<Messages> extends false ? TranslationsPaths<Messages> : never, ResourceKeys extends C | M = IsNever<C> extends false ? IsNever<M> extends false ? C | M : C : IsNever<M> extends false ? M : never>

Подробности

Это интерфейс для Composer

(key: Key | ResourceKeys | number): string;

Перевод сообщения локали

Подпись:

typescript
<Key extends string>(key: Key | ResourceKeys | number): string;

Подробности

Если используется в реактивном контексте, оно будет переоценено после изменения локали.

Если I18nScope 'local' или некоторые UseI18nOptions указаны в useI18n, то они будут переведены с приоритетом локальной области видимости сообщений локали по сравнению с глобальной областью видимости сообщений локали.

Если нет, то переводится с использованием глобальных сообщений локали.

См. также:

Параметры

ПараметрТипОписание
keyKey | ResourceKeys | numberКлюч целевого сообщения локали

Возвращает

Переведенное сообщение

(key: Key | ResourceKeys | number, named: NamedValue): string;

Перевод сообщения локали для именованной интерполяции

Подпись:

typescript
<Key extends string>(key: Key | ResourceKeys | number, named: NamedValue): string;

Подробности

Перегрузка t.

В этой перегрузке t для каждого заполнителя x сообщения локали должны содержать токен {x}.

Вы также можете подавить предупреждение, если отсутствует перевод согласно опциям.

См. также:

Параметры

ПараметрТипОписание
keyKey | ResourceKeys | numberКлюч целевого сообщения локали
namedNamedValueЗначения для именованной интерполяции

Возвращает

Переведенное сообщение

(key: Key | ResourceKeys | number, named: NamedValue, plural: number): string;

Перевод сообщения локали для именованной интерполяции и множественного числа

Подпись:

typescript
<Key extends string>(key: Key | ResourceKeys | number, named: NamedValue, plural: number): string;

Подробности

Перегрузка t.

В этой перегрузке t для каждого заполнителя x сообщения локали должны содержать токен {x}, и возвращается множественное число переведенного сообщения.

См. также:

Параметры

ПараметрТипОписание
keyKey | ResourceKeys | numberКлюч целевого сообщения локали
namedNamedValueЗначения для именованной интерполяции
pluralnumberКакое множественное число получить. 1 возвращает первое.

Возвращает

Переведенное сообщение

(key: Key | ResourceKeys | number, named: NamedValue, defaultMsg: string): string;

Перевод сообщения локали для именованной интерполяции и множественного числа

Подпись:

typescript
<Key extends string>(key: Key | ResourceKeys | number, named: NamedValue, defaultMsg: string): string;

Подробности

Перегрузка t.

В этой перегрузке t для каждого заполнителя x сообщения локали должны содержать токен {x}, и если перевод не найден, возвращается сообщение по умолчанию.

См. также:

Параметры

ПараметрТипОписание
keyKey | ResourceKeys | numberКлюч целевого сообщения локали
namedNamedValueЗначения для именованной интерполяции
defaultMsgstringСообщение по умолчанию, которое будет возвращено, если перевод не найден

Возвращает

Переведенное сообщение

(key: Key | ResourceKeys | number, named: NamedValue, options: TranslateOptions<Locales>): string;

Перевод сообщения локали для именованной интерполяции

Подпись:

typescript
<Key extends string>(key: Key | ResourceKeys | number, named: NamedValue, options: TranslateOptions<Locales>): string;

Подробности

Перегрузка t.

В этой перегрузке t для каждого заполнителя x сообщения локали должны содержать токен {x}.

Вы также можете подавить предупреждение, если отсутствует перевод согласно опциям.

О подробностях опций см. .

Как использовать подробнее:

Параметры

ПараметрТипОписание
keyKey | ResourceKeys | numberКлюч целевого сообщения локали
namedNamedValueЗначения для именованной интерполяции
optionsTranslateOptions<Locales>Дополнительные параметры для перевода

Возвращает

Переведенное сообщение

(key: Key | ResourceKeys | number, plural: number): string;

Перевод сообщения локали для множественного числа

Подпись:

typescript
<Key extends string>(key: Key | ResourceKeys | number, plural: number): string;

Подробности

Перегрузка t.

В этой перегрузке t возвращается множественное число переведенного сообщения.

Вы также можете подавить предупреждение, если отсутствует перевод согласно опциям.

См. также:

Параметры

ПараметрТипОписание
keyKey | ResourceKeys | numberКлюч целевого сообщения локали
pluralnumberКакое множественное число получить. 1 возвращает первое.

Возвращает

Переведенное сообщение

(key: Key | ResourceKeys | number, plural: number, options: TranslateOptions<Locales>): string;

Перевод сообщения локали для множественного числа

Подпись:

typescript
<Key extends string>(key: Key | ResourceKeys | number, plural: number, options: TranslateOptions<Locales>): string;

Подробности

Перегрузка t.

В этой перегрузке t возвращается множественное число переведенного сообщения.

Вы также можете подавить предупреждение, если отсутствует перевод согласно опциям.

О подробностях опций см. .

См. также:

Параметры

ПараметрТипОписание
keyKey | ResourceKeys | numberКлюч целевого сообщения локали
pluralnumberКакое множественное число получить. 1 возвращает первое.
optionsTranslateOptions<Locales>Дополнительные параметры для перевода

Возвращает

Переведенное сообщение

(key: Key | ResourceKeys | number, defaultMsg: string): string;

Перевод сообщения локали для отсутствующего сообщения по умолчанию

Подпись:

typescript
<Key extends string>(key: Key | ResourceKeys | number, defaultMsg: string): string;

Подробности

Перегрузка t.

В этой перегрузке t если перевод не найден, возвращается сообщение по умолчанию.

Вы также можете подавить предупреждение, если отсутствует перевод согласно опциям.

Параметры

ПараметрТипОписание
keyKey | ResourceKeys | numberКлюч целевого сообщения локали
defaultMsgstringСообщение по умолчанию, которое будет возвращено, если перевод не найден

Возвращает

Переведенное сообщение

(key: Key | ResourceKeys | number, defaultMsg: string, options: TranslateOptions<Locales>): string;

Перевод сообщения локали для отсутствующего сообщения по умолчанию

Подпись:

typescript
<Key extends string>(key: Key | ResourceKeys | number, defaultMsg: string, options: TranslateOptions<Locales>): string;

Подробности

Перегрузка t.

В этой перегрузке t если перевод не найден, возвращается сообщение по умолчанию.

Вы также можете подавить предупреждение, если отсутствует перевод согласно опциям.

О подробностях опций см. .

Параметры

ПараметрТипОписание
keyKey | ResourceKeys | numberКлюч целевого сообщения локали
defaultMsgstringСообщение по умолчанию, которое будет возвращено, если перевод не найден
optionsTranslateOptions<Locales>Дополнительные параметры для перевода

Возвращает

Переведенное сообщение

(key: Key | ResourceKeys | number, list: unknown[]): string;

Перевод сообщения локали для интерполяции списков

Подпись:

typescript
<Key extends string>(key: Key | ResourceKeys | number, list: unknown[]): string;

Подробности

Перегрузка t.

В этой перегрузке t сообщения локали должны содержать {0}, {1}, … для каждого заполнителя в списке.

Вы также можете подавить предупреждение, если отсутствует перевод согласно опциям.

См. также:

Параметры

ПараметрТипОписание
keyKey | ResourceKeys | numberКлюч целевого сообщения локали
listunknown[]Значения для интерполяции списка

Возвращает

Переведенное сообщение

(key: Key | ResourceKeys | number, list: unknown[], plural: number): string;

Перевод сообщения локали для интерполяции списков и множественного числа

Подпись:

typescript
<Key extends string>(key: Key | ResourceKeys | number, list: unknown[], plural: number): string;

Подробности

Перегрузка t.

В этой перегрузке t сообщения локали должны содержать {0}, {1}, … для каждого заполнителя в списке, и возвращается множественное число переведенного сообщения.

См. также:

Параметры

ПараметрТипОписание
keyKey | ResourceKeys | numberКлюч целевого сообщения локали
listunknown[]Значения для интерполяции списка
pluralnumberКакое множественное число получить. 1 возвращает первое.

Возвращает

Переведенное сообщение

(key: Key | ResourceKeys | number, list: unknown[], defaultMsg: string): string;

Перевод сообщения локали для интерполяции списков и отсутствующего сообщения по умолчанию

Подпись:

typescript
<Key extends string>(key: Key | ResourceKeys | number, list: unknown[], defaultMsg: string): string;

Подробности

Перегрузка t.

См. также:

В этой перегрузке t сообщения локали должны содержать {0}, {1}, … для каждого заполнителя в списке, и если перевод не найден, возвращается сообщение по умолчанию.

Параметры

ПараметрТипОписание
keyKey | ResourceKeys | numberКлюч целевого сообщения локали
listunknown[]Значения для интерполяции списка
defaultMsgstringСообщение по умолчанию, которое будет возвращено, если перевод не найден

Возвращает

Переведенное сообщение

(key: Key | ResourceKeys | number, list: unknown[], options: TranslateOptions<Locales>): string;

Перевод сообщения локали для интерполяции списков

Подпись:

typescript
<Key extends string>(key: Key | ResourceKeys | number, list: unknown[], options: TranslateOptions<Locales>): string;

Подробности

Перегрузка t.

В этой перегрузке t сообщения локали должны содержать {0}, {1}, … для каждого заполнителя в списке.

Вы также можете подавить предупреждение, если отсутствует перевод согласно опциям.

О подробностях опций см. .

Как использовать подробнее:

Параметры

ПараметрТипОписание
keyKey | ResourceKeys | numberКлюч целевого сообщения локали
listunknown[]Значения для интерполяции списка
optionsTranslateOptions<Locales>Дополнительные параметры для перевода

Возвращает

Переведенное сообщение

MissingHandler

Подпись:

typescript
export type MissingHandler = (locale: Locale, key: Path, instance?: ComponentInternalInstance | GenericComponentInstance, type?: string) => string | void;

useI18n

Использование Composition API для Vue I18n

Подпись:

typescript
export declare function useI18n<Schema = DefaultLocaleMessageSchema, Locales = 'en-US', Options extends UseI18nOptions<SchemaParams<Schema, VueMessageType>, LocaleParams<Locales>> = UseI18nOptions<SchemaParams<Schema, VueMessageType>, LocaleParams<Locales>>>(options?: Options): Composer<NonNullable<Options['messages']>, NonNullable<Options['datetimeFormats']>, NonNullable<Options['numberFormats']>, NonNullable<Options['locale']>>;

Параметры типа

ПараметрОписание
SchemaСхема ресурсов i18n (сообщения, форматы даты и времени, форматы чисел), по умолчанию
LocalesЛокали схемы ресурсов i18n, по умолчанию en-US

Подробности

Эта функция в основном используется в setup.

Если указаны опции, для каждого компонента создается экземпляр Composer, и вы можете выполнять локализацию в компоненте.

Если опции не указаны, вы можете выполнять локализацию с использованием глобального Composer.

Параметры

ПараметрТипОписание
optionsОпцииОпции, см. UseI18nOptions

Возвращает

Экземпляр Composer

Примеры

Случай: локализация на основе ресурсов компонента

html
<template>
  <form>
    <label>{{ t('language') }}</label>
    <select v-model="locale">
      <option value="en">en</option>
      <option value="ja">ja</option>
    </select>
  </form>
  <p>сообщение: {{ t('hello') }}</p>
</template>

<script>
import { useI18n } from 'vue-i18n'

export default {
 setup() {
   const { t, locale } = useI18n({
     locale: 'ja',
     messages: {
       en: { ... },
       ja: { ... }
     }
   })
   // Что-то еще нужно сделать ...

   return { ..., t, locale }
 }
}
</script>

UseI18nOptions

Опции I18n для useI18n

Подпись:

typescript
export type UseI18nOptions<Schema extends {
    message?: unknown;
    datetime?: unknown;
    number?: unknown;
} = {
    message: DefaultLocaleMessageSchema;
    datetime: DefaultDateTimeFormatSchema;
    number: DefaultNumberFormatSchema;
}, Locales extends {
    messages: unknown;
    datetimeFormats: unknown;
    numberFormats: unknown;
} | string = Locale, Options extends ComposerOptions<Schema, Locales> = ComposerOptions<Schema, Locales>> = ComposerAdditionalOptions & Options;

Подробности

UseI18nOptions наследуется от ComposerAdditionalOptions и ComposerOptions, поэтому вы можете указать эти опции.

VueMessageType

Подпись:

typescript
export type VueMessageType = string | ResourceNode | VNode;