Skip to content

vue-i18n / general / ComposerOptions

Интерфейс: ComposerOptions<Schema, Locales, MessagesLocales, DateTimeFormatsLocales, NumberFormatsLocales, MessageSchema, DateTimeSchema, NumberSchema, _Messages, _DateTimeFormats, _NumberFormats>

Параметры композера

Примечания

Это параметры для создания композера.

Композиция Vue I18n

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

Параметр типаТип по умолчанию
Schema extends objectobject
Locales extends | { datetimeFormats: unknown; messages: unknown; numberFormats: unknown; } | stringLocale
MessagesLocalesLocales extends object ? M : Locales extends string ? Locales : Locale
DateTimeFormatsLocalesLocales extends object ? D : Locales extends string ? Locales : Locale
NumberFormatsLocalesLocales extends object ? N : Locales extends string ? Locales : Locale
MessageSchemaSchema extends object ? M : DefaultLocaleMessageSchema
DateTimeSchemaSchema extends object ? D : DefaultDateTimeFormatSchema
NumberSchemaSchema extends object ? N : DefaultNumberFormatSchema
_Messages extends LocaleMessages<MessageSchema, MessagesLocales, VueMessageType>LocaleMessages<MessageSchema, MessagesLocales, VueMessageType>
_DateTimeFormats extends IntlDateTimeFormats<DateTimeSchema, DateTimeFormatsLocales>IntlDateTimeFormats<DateTimeSchema, DateTimeFormatsLocales>
_NumberFormats extends IntlNumberFormats<NumberSchema, NumberFormatsLocales>IntlNumberFormats<NumberSchema, NumberFormatsLocales>

Свойства

datetimeFormats?

ts
optional datetimeFormats: { [K in string | number | symbol]: DateTimeSchema };

Примечания

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

См. также:

По умолчанию

{}


escapeParameter?

ts
optional escapeParameter: boolean;

Примечания

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

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

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

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

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

См. также:

По умолчанию

false


fallbackFormat?

ts
optional fallbackFormat: boolean;

Примечания

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

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

См. также:

По умолчанию

false


fallbackLocale?

ts
optional fallbackLocale: FallbackLocale;

Примечания

Локаль резервной локализации.

Для более сложных определений резервирования см. раздел fallback.

См. также:

По умолчанию

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


fallbackRoot?

ts
optional fallbackRoot: boolean;

Примечания

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

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

См. также:

По умолчанию

true


fallbackWarn?

ts
optional fallbackWarn: boolean | RegExp;

Примечания

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

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

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

См. также:

По умолчанию

true


flatJson?

ts
optional flatJson: boolean;

Примечания

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

По умолчанию

false


inheritLocale?

ts
optional inheritLocale: boolean;

Примечания

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

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

См. также:

По умолчанию

true


locale?

ts
optional locale: string;

Примечания

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

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

См. также:

По умолчанию

'en-US'


messageCompiler?

ts
optional 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?

ts
optional messageResolver: MessageResolver;

Примечания

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

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

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

  • Разрешить сообщения, используя локальное сообщение locale, переданное в качестве первого аргумента разрешителя сообщений, и путь, переданный в качестве второго аргумента.

  • Если сообщение не может быть разрешено, нужно вернуть null.

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

Разрешитель сообщений вызывается косвенно через следующие 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

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

См. также:

По умолчанию

undefined


messages?

ts
optional messages: { [K in string | number | symbol]: MessageSchema };

Примечания

Локальные сообщения локализации.

См. также:

По умолчанию

{}


missing?

ts
optional missing: MissingHandler;

Примечания

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

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

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

По умолчанию

null


missingWarn?

ts
optional missingWarn: boolean | RegExp;

Примечания

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

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

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

См. также:

По умолчанию

true


modifiers?

ts
optional modifiers: LinkedModifiers<VueMessageType>;

Примечания

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

См. также:


numberFormats?

ts
optional numberFormats: { [K in string | number | symbol]: NumberSchema };

Примечания

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

См. также:

По умолчанию

{}


pluralRules?

ts
optional pluralRules: PluralizationRules;

Примечания

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

См. также:

По умолчанию

{}


postTranslation?

ts
optional postTranslation: PostTranslationHandler<VueMessageType>;

Примечания

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

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

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

По умолчанию

null


warnHtmlMessage?

ts
optional warnHtmlMessage: boolean;

Примечания

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

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

См. также:

По умолчанию

true