Skip to content

Общие

createI18n

Фабрика Vue I18n

Подпись:

typescript
export declare function createI18n<Schema extends object = DefaultLocaleMessageSchema, Locales extends string | object = 'en-US', Options extends I18nOptions<SchemaParams<Schema, VueMessageType>, LocaleParams<Locales>> = I18nOptions<SchemaParams<Schema, VueMessageType>, LocaleParams<Locales>>, Messages extends Record<string, unknown> = NonNullable<Options['messages']> extends Record<string, unknown> ? NonNullable<Options['messages']> : {}, DateTimeFormats extends Record<string, unknown> = NonNullable<Options['datetimeFormats']> extends Record<string, unknown> ? NonNullable<Options['datetimeFormats']> : {}, NumberFormats extends Record<string, unknown> = NonNullable<Options['numberFormats']> extends Record<string, unknown> ? NonNullable<Options['numberFormats']> : {}, OptionLocale = Options['locale'] extends string ? Options['locale'] : Locale>(options: Options): I18n<Messages, DateTimeFormats, NumberFormats, OptionLocale>;

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

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

Параметры

ПараметрТипОписание
optionsOptionsОпции, см. I18nOptions

Возвращает

Экземпляр I18n

См. также:

Примеры

js
import { createApp } from 'vue'
import { createI18n, useI18n } from 'vue-i18n'

// вызов с опцией I18n
const i18n = createI18n({
  locale: 'ja',
  messages: {
    en: { ... },
    ja: { ... }
  }
})

const App = {
  setup() {
    // ...
    const { t } = useI18n({ ... })
    return { ... , t }
  }
}

const app = createApp(App)

// установить!
app.use(i18n)
app.mount('#app')

DefineDateTimeFormat

Определение типа формата даты и времени

Подпись:

typescript
export interface DefineDateTimeFormat extends DateTimeFormat

Детали

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

Тип, определённый этим, может использоваться в глобальной области видимости.

Примеры

ts
// type.d.ts (файл `.d.ts` в вашем приложении)
import { DefineDateTimeFormat } from 'vue-i18n'

declare module 'vue-i18n' {
  export interface DefineDateTimeFormat {
    short: {
      hour: 'numeric'
      timezone: string
    }
  }
}

DefineLocaleMessage

Определение типа локализованного сообщения

Подпись:

typescript
export interface DefineLocaleMessage extends LocaleMessage<VueMessageType>

Детали

Этот тип используется для строгого определения типа локализованного сообщения.

Тип, определённый этим, может использоваться в глобальной области видимости.

Примеры

ts
// type.d.ts (файл `.d.ts` в вашем приложении)
import { DefineLocaleMessage } from 'vue-i18n'

declare module 'vue-i18n' {
  export interface DefineLocaleMessage {
    title: string
    menu: {
      login: string
    }
  }
}

DefineNumberFormat

Определение типа формата числа

Подпись:

typescript
export interface DefineNumberFormat extends NumberFormat

Детали

Этот тип используется для строгого определения типа формата числа.

Тип, определённый этим, может использоваться в глобальной области видимости.

Примеры

ts
// type.d.ts (файл `.d.ts` в вашем приложении)
import { DefineNumberFormat } from 'vue-i18n'

declare module 'vue-i18n' {
  export interface DefineNumberFormat {
    currency: {
      style: 'currency'
      currencyDisplay: 'symbol'
      currency: string
    }
  }
}

ExportedGlobalComposer

Экспортируемый глобальный экземпляр составителя (composer)

Подпись:

typescript
export interface ExportedGlobalComposer

Детали

Этот интерфейс — глобальный составитель, предоставляемый интерфейс, который внедряется в каждый компонент с помощью app.config.globalProperties.

availableLocales

Доступные локали

Подпись:

typescript
readonly availableLocales: Locale[];

Детали

Это свойство является свойством типа прокси для Composer#availableLocales. Подробности см. в

fallbackLocale

Резервная локаль

Подпись:

typescript
fallbackLocale: FallbackLocale;

Детали

Это свойство является свойством типа прокси для Composer#fallbackLocale. Подробности см. в

locale

Локаль

Подпись:

typescript
locale: Locale;

Детали

Это свойство является свойством типа прокси для Composer#locale. Подробности см. в

I18n

Экземпляр I18n

Подпись:

typescript
export interface I18n<Messages extends Record<string, unknown> = {}, DateTimeFormats extends Record<string, unknown> = {}, NumberFormats extends Record<string, unknown> = {}, OptionLocale = Locale>

Детали

Экземпляр, необходимый для установки как плагина Vue

global

Свойство доступно для глобального экземпляра составителя (composer)

Экземпляр этого свойства находится в глобальной области.

Подпись:

typescript
readonly global: Composer<Messages, DateTimeFormats, NumberFormats, OptionLocale>;

dispose()

Освобождение ресурсов глобальной области

Подпись:

typescript
dispose(): void;

Параметры

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

install(app, options)

Точка входа установки

Подпись:

typescript
install(app: App, ...options: unknown[]): void;

Параметры

ПараметрТипОписание
appAppЦелевой экземпляр Vue приложения
optionsunknown[]Опции установки

I18nAdditionalOptions

Дополнительные параметры I18n

Подпись:

typescript
export interface I18nAdditionalOptions

Детали

I18nAdditionalOptions — специфичные параметры конфигурации Vue I18n для установки плагина и управления поведением.

globalInjection

Нужно ли внедрять глобальные свойства и функции в каждый компонент.

Подпись:

typescript
globalInjection?: boolean;

Детали

Если установлено в true, то свойства и методы, начинающиеся с $, внедряются в компоненты Vue.

См. также:

true

I18nOptions

Параметры I18n для createI18n

Подпись:

typescript
export type I18nOptions<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 = ComposerOptions<Schema, Locales>> = I18nAdditionalOptions & Options;

I18nPluginOptions

Параметры плагина Vue I18n

Подпись:

typescript
export interface I18nPluginOptions

Детали

Параметры, указанные при установке Vue I18n в качестве плагина Vue с использованием app.use.

globalInstall

Нужно ли глобально устанавливать компоненты, предлагаемые Vue I18n

**Подпись: **

typescript
globalInstall?: boolean;

Детали

Если эта опция включена, компоненты будут установлены глобально во время app.use.

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

true

I18nScope

Область I18n

Подпись:

typescript
export type I18nScope = 'local' | 'parent' | 'global';

VERSION

Версия Vue I18n

Подпись:

typescript
VERSION: string

Детали

Формат Semver. То же самое, что и поле version в package.json.

DateTimeOptions

Опции даты и времени

Подпись:

typescript
export interface DateTimeOptions<Key = string, Locales = Locale> extends Intl.DateTimeFormatOptions, LocaleOptions<Locales>

Детали

Опции для API форматирования даты и времени

fallbackWarn

Подпись:

typescript
fallbackWarn?: boolean;

Детали

Нужно ли разрешать ключи форматирования, когда в вашем языке нет форматирования для ключа

key

Подпись:

typescript
key?: Key;

Детали

Ключ целевого формата

missingWarn

Подпись:

typescript
missingWarn?: boolean;

Детали

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

part

Подпись:

typescript
part?: boolean;

Детали

Нужно ли использовать Intel.DateTimeFormat#formatToParts

DefineCoreLocaleMessage

Определение типа локализованного сообщения для пакета @intlify/core-base

Подпись:

typescript
export interface DefineCoreLocaleMessage extends LocaleMessage<string>

Детали

Этот тип используется для строгого определения типа локализованного сообщения.

Примеры

ts
// type.d.ts (файл `.d.ts` в вашем приложении)
import { DefineCoreLocaleMessage } from '@intlify/core-base'

declare module '@intlify/core-base' {
  export interface DefineCoreLocaleMessage {
    title: string
    menu: {
      login: string
    }
  }
}

FallbackLocale

Подпись:

typescript
export type FallbackLocale = Locale | Locale[] | {
    [locale in string]: Locale[];
} | false;

fallbackWithLocaleChain

Резервное значение с цепочкой локалей

Подпись:

typescript
export declare function fallbackWithLocaleChain<Message = string>(ctx: CoreContext<Message>, fallback: FallbackLocale, start: Locale): Locale[];

Детали

Функция резервной локали, реализованная с использованием алгоритма цепочки резервных значений. Используется по умолчанию в VueI18n.

См. также

Параметры

ПараметрТипОписание
ctxCoreContext<Message>контекст
fallbackFallbackLocaleрезервная локаль
startLocaleНачальная локаль

Возвращает

Резервные локали

fallbackWithSimple

Резервное значение с простой реализацией

Подпись:

typescript
export declare function fallbackWithSimple<Message = string>(_ctx: CoreContext<Message>, fallback: FallbackLocale, start: Locale): Locale[];

Детали

Функция резервной локали, реализованная с использованием простого алгоритма резервного значения.

Как правило, она возвращает значение, указанное в свойстве fallbackLocale, и обрабатывается внутри intlify.

Параметры

ПараметрТипОписание
_ctxCoreContext<Message>
fallbackFallbackLocaleрезервная локаль
startLocaleНачальная локаль

Возвращает

Резервные локали

LinkedModifiers

Подпись:

typescript
export type LinkedModifiers<T = string> = {
    [key: string]: LinkedModify<T>;
};

Locale

Подпись:

typescript
export type Locale = IsNever<GeneratedLocale> extends true ? string : GeneratedLocale;

LocaleDetector

Подпись:

typescript
export interface LocaleDetector<Args extends any[] = any[]>

resolvedOnce

(...args: Args): Locale | Promise<Locale>;

LocaleFallbacker

Обработчик резервной локали

Подпись:

typescript
export type LocaleFallbacker = <Message = string>(ctx: CoreContext<Message>, fallback: FallbackLocale, start: Locale) => Locale[];

LocaleMessage

Подпись:

typescript
export type LocaleMessage<Message = string> = Record<string, LocaleMessageValue<Message>>;

LocaleMessageDictionary

Подпись:

typescript
export type LocaleMessageDictionary<T, Message = string> = {
    [K in keyof T]: LocaleMessageType<T[K], Message>;
};

LocaleMessages

Подпись:

typescript
export type LocaleMessages<Schema, Locales = Locale, _Message = string> = LocaleRecord<UnionToTuple<Locales>, Schema>;

LocaleMessageType

Подпись:

typescript
export type LocaleMessageType<T, Message = string> = T extends string ? string : T extends () => Promise<infer P> ? LocaleMessageDictionary<P, Message> : T extends (...args: infer Arguments) => any ? (...args: Arguments) => ReturnType<T> : T extends Record<string, unknown> ? LocaleMessageDictionary<T, Message> : T extends Array<T> ? {
    [K in keyof T]: T[K];
} : T;

LocaleMessageValue

Подпись:

typescript
export type LocaleMessageValue<Message = string> = LocaleMessageDictionary<any, Message> | string;

LocaleOptions

Подпись:

typescript
export interface LocaleOptions<Locales = Locale>

locale

Подпись:

typescript
locale?: Locales | LocaleDetector;

Детали

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

MessageCompiler

Компилятор сообщений

Подпись:

typescript
export type MessageCompiler<Message = string, MessageSource = string | ResourceNode> = (message: MessageSource, context: MessageCompilerContext) => MessageFunction<Message>;

MessageCompilerContext

Контекст, передаваемый компилятору сообщений.

Подпись:

typescript
export type MessageCompilerContext = Pick<CompileOptions, 'onError' | 'onCacheKey'> & {
    warnHtmlMessage?: boolean;
    key: string;
    locale: Locale;
};

MessageContext

Контекст сообщения.

Подпись:

typescript
export interface MessageContext<T = string>

type

Тип сообщения, который будет обработан функцией сообщения.

Подпись:

typescript
type: string;

Детали

Обычно text, вам нужно вернуть строку в функции сообщения.

values

Значения сообщения.

Подпись:

typescript
values: Record<string, unknown>;

Детали

Значения сообщения — это аргументы, переданные из функции перевода, таких как $t, t, или translate.

Примеры

vue-i18n $t (или t) случай:

html
<p>{{ $t('greeting', { name: 'DIO' }) }}</p> <!-- `{ name: 'DIO' }` — значения сообщения -->

Случай @intlify/core (@intlify/core-base) translate:

js
translate(context, 'foo.bar', ['dio']) // `['dio']` — значения сообщения

linked(key, modifier)

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

Подпись:

typescript
linked(key: Path, modifier?: string): MessageType<T>;

Параметры

ПараметрТипОписание
keyPathКлюч сообщения
modifierstringМодификатор

Возвращает

Разрешенное сообщение.

linked(key, modifier, type)

Перегруженный метод linked

Подпись:

typescript
linked(key: Path, modifier?: string, type?: string): MessageType<T>;

Параметры

ПараметрТипОписание
keyPathКлюч сообщения
modifierstringМодификатор
typestringТип сообщения

Возвращает

Разрешенное сообщение.

linked(key, options)

Перегруженный метод linked

Подпись:

typescript
linked(key: Path, options?: LinkedOptions): MessageType<T>;

Параметры

ПараметрТипОписание
keyPathКлюч сообщения
optionsLinkedOptionsОпции связывания

Возвращает

Разрешенное сообщение.

list(index)

Разрешить значение сообщения из списка.

Подпись:

typescript
list(index: number): unknown;

Параметры

ПараметрТипОписание
indexnumberИндекс значений сообщений.

Возвращает

Разрешенное значение сообщения.

Примеры

js
const messages = {
  en: {
    greeting: ({ list }) => `hello, ${list(0)}!`
  }
}

named(key)

Разрешить значение сообщения по имени.

Подпись:

typescript
named(key: string): unknown;

Параметры

ПараметрТипОписание
keystringКлюч значения сообщения.

Возвращает

Разрешенное значение сообщения.

Примеры

js
const messages = {
  en: {
    greeting: ({ named }) => `hello, ${named('name')}!`
  }
}

plural(messages)

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

Подпись:

typescript
plural(messages: T[]): T;

Подробности

Разрешается с индексом множественного числа с помощью функции перевода.

Параметры

ПараметрТипОписание
messagesT[]Сообщения, которые разрешаются с индексом множественного числа с помощью функции перевода.

Возвращает

Разрешенное сообщение.

Примеры

js
const messages = {
  en: {
    car: ({ plural }) => plural(['car', 'cars']),
    apple: ({ plural, named }) =>
      plural([
        'no apples',
        'one apple',
        `${named('count')} apples`
      ])
  }
}

MessageFunction

Функция сообщения.

Подпись:

typescript
export type MessageFunction<T = string> = MessageFunctionCallable | MessageFunctionInternal<T>;

MessageFunctionReturn

Подпись:

typescript
export type MessageFunctionReturn<T = string> = T extends string ? MessageType<T> : MessageType<T>[];

MessageResolver

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

Подпись:

typescript
export type MessageResolver = (obj: unknown, path: Path) => PathValue;

NamedValue

Подпись:

typescript
export type NamedValue<T = {}> = T & Record<string, unknown>;

NumberOptions

Опции чисел

Подпись:

typescript
export interface NumberOptions<Key = string, Locales = Locale> extends Intl.NumberFormatOptions, LocaleOptions<Locales>

Детали

Опции для API форматирования чисел

fallbackWarn

Подпись:

typescript
fallbackWarn?: boolean;

Детали

Нужно ли разрешать ключи форматирования, когда в вашем языке нет форматирования для ключа

key

Подпись:

typescript
key?: Key;

Детали

Целевой ключ формата

missingWarn

Подпись:

typescript
missingWarn?: boolean;

Детали

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

part

Подпись:

typescript
part?: boolean;

Детали

Нужно ли использовать Intel.NumberFormat#formatToParts

Path

Подпись:

typescript
export type Path = string;

PathValue

Подпись:

typescript
export type PathValue = string | number | boolean | Function | null | {
    [key: string]: PathValue;
} | PathValue[];

PluralizationRules

Подпись:

typescript
export type PluralizationRules = {
    [locale: string]: PluralizationRule;
};

PostTranslationHandler

Подпись:

typescript
export type PostTranslationHandler<Message = string> = (translated: MessageFunctionReturn<Message>, key: string) => MessageFunctionReturn<Message>;

registerLocaleFallbacker

Зарегистрировать обработчик резервной локали

Подпись:

typescript
export declare function registerLocaleFallbacker(fallbacker: LocaleFallbacker): void;

Параметры

ПараметрТипОписание
fallbackerLocaleFallbackerФункция LocaleFallbacker

registerMessageResolver

Зарегистрировать разрешитель сообщений

Подпись:

typescript
export declare function registerMessageResolver(resolver: MessageResolver): void;

Параметры

ПараметрТипОписание
resolverMessageResolverФункция MessageResolver

resolveValue

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

Подпись:

typescript
export declare function resolveValue(obj: unknown, path: Path): PathValue;

Детали

Разрешает сообщения. Сообщения с иерархической структурой, такими как объекты, могут быть разрешены. Этот разрешитель используется по умолчанию в VueI18n.

Параметры

ПараметрТипОписание
objunknownЦелевой объект для разрешения с помощью пути
pathPathпуть для разрешения значения сообщения

Возвращает

Разрешённое значение пути

resolveWithKeyValue

Разрешитель сообщений с ключом-значением

Подпись:

typescript
export declare function resolveWithKeyValue(obj: unknown, path: Path): PathValue;

Детали

Разрешает сообщения с ключом-значением. Обратите внимание, что сообщения с иерархической структурой, такими как объекты, не могут быть разрешены

Параметры

ПараметрТипОписание
objunknownЦелевой объект для разрешения с помощью пути
pathPathпуть для разрешения значения сообщения

Возвращает

Разрешённое значение пути

TranslateOptions

Опции перевода

Подпись:

typescript
export interface TranslateOptions<Locales = Locale> extends LocaleOptions<Locales>

Детали

Опции для API перевода

default

Подпись:

typescript
default?: string | boolean;

Детали

Сообщение по умолчанию, если произошёл сбой перевода

escapeParameter

Подпись:

typescript
escapeParameter?: boolean;

Детали

Нужно ли экранировать параметры для списков или именованных значений интерполяции

fallbackWarn

Подпись:

typescript
fallbackWarn?: boolean;

Детали

Нужно ли делать интерполяцию шаблонов по ключам перевода, когда в вашем языке отсутствует перевод для ключа

list

Подпись:

typescript
list?: unknown[];

Детали

Интерполяция списка

missingWarn

Подпись:

typescript
missingWarn?: boolean;

Детали

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

named

Подпись:

typescript
named?: NamedValue;

Детали

Интерполяция по имени

plural

Подпись:

typescript
plural?: number;

Детали

Число выбора множественного числа

resolvedMessage

Подпись:

typescript
resolvedMessage?: boolean;

Детали

Указывает, было ли сообщение разрешено