vue-i18n / general / ComposerOptions
Интерфейс: ComposerOptions<Schema, Locales, MessagesLocales, DateTimeFormatsLocales, NumberFormatsLocales, MessageSchema, DateTimeSchema, NumberSchema, _Messages, _DateTimeFormats, _NumberFormats>
Параметры композера
Примечания
Это параметры для создания композера.
Композиция Vue I18n
Параметры типа
| Параметр типа | Тип по умолчанию |
|---|---|
Schema extends object | object |
Locales extends | { datetimeFormats: unknown; messages: unknown; numberFormats: unknown; } | string | Locale |
MessagesLocales | Locales extends object ? M : Locales extends string ? Locales : Locale |
DateTimeFormatsLocales | Locales extends object ? D : Locales extends string ? Locales : Locale |
NumberFormatsLocales | Locales extends object ? N : Locales extends string ? Locales : Locale |
MessageSchema | Schema extends object ? M : DefaultLocaleMessageSchema |
DateTimeSchema | Schema extends object ? D : DefaultDateTimeFormatSchema |
NumberSchema | Schema 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?
optional datetimeFormats: { [K in string | number | symbol]: DateTimeSchema };Примечания
Форматы даты и времени локализации.
См. также:
По умолчанию
{}
escapeParameter?
optional escapeParameter: boolean;Примечания
Если escapeParameter установлен в true, то параметры интерполяции будут экранированы перед переводом сообщения.
Это полезно, когда вывод перевода используется в v-html, а ресурс перевода содержит разметку HTML (например, вокруг предоставленного пользователем значения).
Этот шаблон использования чаще всего встречается при передаче заранее вычисленных текстовых строк в компоненты пользовательского интерфейса.
Процесс экранирования включает замену следующих символов на соответствующие HTML-сущности: <, >, ", '.
Установка escapeParameter в true не должна нарушать существующую функциональность, но обеспечивает защиту от тонких векторов атак XSS.
См. также:
По умолчанию
false
fallbackFormat?
optional fallbackFormat: boolean;Примечания
Выполнять ли интерполяцию шаблона по ключам перевода, когда в вашем языке отсутствует перевод для ключа.
Если true, пропустите написание шаблонов для "базового" языка; ключи будут вашими шаблонами.
См. также:
По умолчанию
false
fallbackLocale?
optional fallbackLocale: FallbackLocale;Примечания
Локаль резервной локализации.
Для более сложных определений резервирования см. раздел fallback.
См. также:
По умолчанию
Значение по умолчанию 'en-US' для locale, если оно не указано, или значение locale
fallbackRoot?
optional fallbackRoot: boolean;Примечания
В локализации компонента, следует ли использовать резервную локализацию на уровне корневого уровня (глобальная область видимости) при неудаче локализации.
Если false, резервная локализация на уровне корневого уровня не используется.
См. также:
По умолчанию
true
fallbackWarn?
optional fallbackWarn: boolean | RegExp;Примечания
Подавлять ли предупреждения при переходе к fallbackLocale или корневому уровню.
Если false, подавляются предупреждения о резервировании.
Если вы используете регулярные выражения, можно подавить предупреждения о резервировании, которые совпадают с ключом перевода (например, t).
См. также:
По умолчанию
true
flatJson?
optional flatJson: boolean;Примечания
Разрешить использование плоских JSON-сообщений или нет
По умолчанию
false
inheritLocale?
optional inheritLocale: boolean;Примечания
Наследовать ли локаль уровня корня для локализации компонента.
Если false, независимо от локали уровня корня, локализация происходит для каждой локали компонента.
См. также:
По умолчанию
true
locale?
optional locale: string;Примечания
Локаль локализации.
Если локаль содержит территорию и диалект, эта локаль содержит неявное резервирование.
См. также:
По умолчанию
'en-US'
messageCompiler?
optional messageCompiler: MessageCompiler;Примечания
Компилятор для пользовательского формата сообщений.
Если не указан, будет использоваться компилятор сообщений по умолчанию vue-i18n.
Вам нужно реализовать собственный компилятор сообщений, который возвращает функции сообщений.
Пример
Вот пример того, как настроить пользовательский компилятор сообщений с помощью intl-messageformat
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?
optional messageResolver: MessageResolver;Примечания
Разрешитель сообщений для разрешения сообщений.
Если не указан, будет использоваться внутренний разрешитель сообщений vue-i18n по умолчанию.
Вам нужно самостоятельно реализовать разрешитель сообщений, который удовлетворяет следующим требованиям:
Разрешить сообщения, используя локальное сообщение locale, переданное в качестве первого аргумента разрешителя сообщений, и путь, переданный в качестве второго аргумента.
Если сообщение не может быть разрешено, нужно вернуть
null.Если будет возвращено
null, разрешитель сообщений также будет вызван при резервировании, если включено fallbackLocale, поэтому сообщение также нужно будет разрешить.
Разрешитель сообщений вызывается косвенно через следующие API:
Пример
Вот пример того, как настроить его с помощью вашего createI18n:
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?
optional messages: { [K in string | number | symbol]: MessageSchema };Примечания
Локальные сообщения локализации.
См. также:
По умолчанию
{}
missing?
optional missing: MissingHandler;Примечания
Обработчик отсутствующей локализации.
Обработчик вызывается с целевой локалью локализации, путем ключа локализации, экземпляром Vue и значениями.
Если назначен обработчик отсутствия и произошло отсутствие локализации, предупреждение не выводится.
По умолчанию
null
missingWarn?
optional missingWarn: boolean | RegExp;Примечания
Подавлять ли предупреждения, выводимые при сбое локализации.
Если false, подавляются предупреждения о сбое локализации.
Если вы используете регулярные выражения, можно подавить предупреждения о сбое локализации, которые совпадают с ключом перевода (например, t).
См. также:
По умолчанию
true
modifiers?
optional modifiers: LinkedModifiers<VueMessageType>;Примечания
Пользовательские модификаторы для связанных сообщений.
См. также:
numberFormats?
optional numberFormats: { [K in string | number | symbol]: NumberSchema };Примечания
Форматы чисел локализации.
См. также:
По умолчанию
{}
pluralRules?
optional pluralRules: PluralizationRules;Примечания
Набор правил для образования множественного числа
См. также:
По умолчанию
{}
postTranslation?
optional postTranslation: PostTranslationHandler<VueMessageType>;Примечания
Обработчик после обработки перевода.
Обработчик вызывается после вызова t.
Этот обработчик полезен, если вы хотите фильтровать переведенный текст, например, обрезать пробелы.
По умолчанию
null
warnHtmlMessage?
optional warnHtmlMessage: boolean;Примечания
Разрешить ли использовать локальные сообщения с форматированием HTML.
См. свойство warnHtmlMessage.
См. также:
По умолчанию
true