Skip to content

vue-i18n / general / Composer

接口:Composer<Messages, DateTimeFormats, NumberFormats, OptionLocale, ResourceLocales, Locales> ​

Composer 接口

备注 ​

此接口用于 Vue 3 组合式 API。

Vue I18n 组合式 API ​

扩展 ​

类型参数 ​

类型参数默认类型
Messages extends Record<string, any>object
DateTimeFormats extends Record<string, any>object
NumberFormats extends Record<string, any>object
OptionLocaleLocale
ResourceLocales| PickupLocales<NonNullable<Messages>> | PickupLocales<NonNullable<DateTimeFormats>> | PickupLocales<NonNullable<NumberFormats>>
LocalesLocale extends GeneratedLocale ? GeneratedLocale : OptionLocale extends Locale ? IsNever<ResourceLocales> extends true ? Locale : ResourceLocales : OptionLocale | ResourceLocales

方法 ​

getDateTimeFormat() ​

ts
getDateTimeFormat<DateTimeSchema, LocaleSchema, Locale, Return>(locale): Return;

获取日期时间格式

类型参数 ​

类型参数默认类型描述
DateTimeSchema extends Record<string, any>never日期时间格式模式,默认为 never
LocaleSchema extends stringstring-
Locale extends stringPickupLocales<NonNullable<DateTimeFormats>>-
ReturnIsNever<DateTimeSchema> extends true ? IsEmptyObject<DateTimeFormats> extends true ? RemoveIndexSignature<{ [key: string]: DateTimeFormatOptions; }> : NonNullable<DateTimeFormats>[Locale] : DateTimeSchema-

参数 ​

参数类型描述
localeLocaleSchema | Locale目标语言环境

返回值 ​

Return 日期时间格式

备注 ​

从 Composer 实例 Composer#datetimeFormats 获取日期时间格式。


getLocaleMessage() ​

ts
getLocaleMessage<MessageSchema, LocaleSchema, Locale, Return>(locale): Return;

获取本地消息

类型参数 ​

类型参数默认类型描述
MessageSchema extends LocaleMessage<VueMessageType>never本地消息模式,默认为 never
LocaleSchema extends stringstring-
Locale extends stringPickupLocales<NonNullable<Messages>>-
ReturnIsNever<MessageSchema> extends true ? IsEmptyObject<Messages> extends true ? RemoveIndexSignature<{ [key: string]: LocaleMessageValue<VueMessageType>; }> : NonNullable<Messages>[Locale] : MessageSchema-

参数 ​

参数类型描述
localeLocaleSchema | Locale目标语言环境

返回值 ​

Return 本地消息

备注 ​

从 Composer 实例 Composer#messages 获取本地消息。


getMissingHandler() ​

ts
getMissingHandler(): MissingHandler | null;

获取缺失处理程序 请参见:

  • Composer#missing

返回值 ​

MissingHandler | nullMissingHandler


getNumberFormat() ​

ts
getNumberFormat<NumberSchema, LocaleSchema, Locale, Return>(locale): Return;

获取数字格式

类型参数 ​

类型参数默认类型描述
NumberSchema extends Record<string, any>never数字格式模式,默认为 never
LocaleSchema extends stringstring-
Locale extends stringPickupLocales<NonNullable<NumberFormats>>-
ReturnIsNever<NumberSchema> extends true ? IsEmptyObject<NumberFormats> extends true ? RemoveIndexSignature<{ [key: string]: NumberFormatOptions; }> : NonNullable<NumberFormats>[Locale] : NumberSchema-

参数 ​

参数类型描述
localeLocaleSchema | Locale目标语言环境

返回值 ​

Return 数字格式

备注 ​

从 Composer 实例 Composer#numberFormats 获取数字格式。


getPostTranslationHandler() ​

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

获取翻译后处理程序 请参见:

  • Composer#missing

返回值 ​

| PostTranslationHandler<VueMessageType> | nullPostTranslationHandler


mergeDateTimeFormat() ​

ts
mergeDateTimeFormat<DateTimeSchema, LocaleSchema, Locale, Formats>(locale, format): void;

合并日期时间格式

类型参数 ​

类型参数默认类型描述
DateTimeSchema extends Record<string, any>never日期时间格式模式,默认为 never
LocaleSchema extends stringstring-
Locale extends stringPickupLocales<NonNullable<DateTimeFormats>>-
FormatsIsNever<DateTimeSchema> extends true ? Record<string, any> : DateTimeSchema-

参数 ​

参数类型描述
localeLocaleSchema | Locale目标语言环境
formatFormats目标日期时间格式

返回值 ​

void

备注 ​

将日期时间格式合并到 Composer 实例 Composer#datetimeFormats。


mergeLocaleMessage() ​

ts
mergeLocaleMessage<MessageSchema, LocaleSchema, Locale, Message>(locale, message): void;

合并本地消息

类型参数 ​

类型参数默认类型描述
MessageSchema extends LocaleMessage<VueMessageType>never本地消息模式,默认为 never
LocaleSchema extends stringstring-
Locale extends stringPickupLocales<NonNullable<Messages>>-
MessageIsNever<MessageSchema> extends true ? Record<string, any> : MessageSchema-

参数 ​

参数类型描述
localeLocaleSchema | Locale目标语言环境
messageMessage消息

返回值 ​

void

备注 ​

将本地消息合并到 Composer 实例 Composer#messages。


mergeNumberFormat() ​

ts
mergeNumberFormat<NumberSchema, LocaleSchema, Locale, Formats>(locale, format): void;

合并数字格式

类型参数 ​

类型参数默认类型描述
NumberSchema extends Record<string, any>never数字格式模式,默认为 never
LocaleSchema extends stringstring-
Locale extends stringPickupLocales<NonNullable<NumberFormats>>-
FormatsIsNever<NumberSchema> extends true ? Record<string, any> : NumberSchema-

参数 ​

参数类型描述
localeLocaleSchema | Locale目标语言环境
formatFormats目标数字格式

返回值 ​

void

备注 ​

将数字格式合并到 Composer 实例 Composer#numberFormats。


setDateTimeFormat() ​

ts
setDateTimeFormat<DateTimeSchema, LocaleSchema, Locale, FormatsType, Formats>(locale, format): void;

设置日期时间格式

类型参数 ​

类型参数默认类型描述
DateTimeSchema extends Record<string, any>never日期时间格式模式,默认为 never
LocaleSchema extends stringstring-
Locale extends stringPickupLocales<NonNullable<DateTimeFormats>>-
FormatsTypeIsNever<DateTimeSchema> extends true ? IsEmptyObject<DateTimeFormats> extends true ? RemoveIndexSignature<{ [key: string]: DateTimeFormatOptions; }> : NonNullable<DateTimeFormats>[Locale] : DateTimeSchema-
FormatsFormatsType-

参数 ​

参数类型描述
localeLocaleSchema | Locale目标语言环境
formatFormats目标日期时间格式

返回值 ​

void

备注 ​

将日期时间格式设置到 Composer 实例 Composer#datetimeFormats。


setLocaleMessage() ​

ts
setLocaleMessage<MessageSchema, LocaleSchema, Locale, MessageType, Message>(locale, message): void;

设置本地消息

类型参数 ​

类型参数默认类型描述
MessageSchema extends LocaleMessage<VueMessageType>never本地消息模式,默认为 never
LocaleSchema extends stringstring-
Locale extends stringPickupLocales<NonNullable<Messages>>-
MessageTypeIsNever<MessageSchema> extends true ? IsEmptyObject<Messages> extends true ? RemoveIndexSignature<{ [key: string]: LocaleMessageValue<VueMessageType>; }> : NonNullable<Messages>[Locale] : MessageSchema-
MessageMessageType-

参数 ​

参数类型描述
localeLocaleSchema | Locale目标语言环境
messageMessage消息

返回值 ​

void

备注 ​

将本地消息设置到 Composer 实例 Composer#messages。


setMissingHandler() ​

ts
setMissingHandler(handler): void;

设置缺失处理程序 请参见:

  • Composer#missing

参数 ​

参数类型描述
handlerMissingHandler | null一个 MissingHandler

返回值 ​

void


setNumberFormat() ​

ts
setNumberFormat<NumberSchema, LocaleSchema, Locale, FormatsType, Formats>(locale, format): void;

设置数字格式

类型参数 ​

类型参数默认类型描述
NumberSchema extends Record<string, any>never数字格式模式,默认为 never
LocaleSchema extends stringstring-
Locale extends stringPickupLocales<NonNullable<NumberFormats>>-
FormatsTypeIsNever<NumberSchema> extends true ? IsEmptyObject<NumberFormats> extends true ? RemoveIndexSignature<{ [key: string]: NumberFormatOptions; }> : NonNullable<NumberFormats>[Locale] : NumberSchema-
FormatsFormatsType-

参数 ​

参数类型描述
localeLocaleSchema | Locale目标语言环境
formatFormats目标数字格式

返回值 ​

void

备注 ​

将数字格式设置到 Composer 实例 Composer#numberFormats。


setPostTranslationHandler() ​

ts
setPostTranslationHandler(handler): void;

设置翻译后处理程序 请参见:

  • Composer#missing

参数 ​

参数类型描述
handler| PostTranslationHandler<VueMessageType> | null一个 PostTranslationHandler

返回值 ​

void


te() ​

ts
te&lt;Str, Key&gt;(key, locale?): boolean;

翻译本地消息存在性检查

类型参数 ​

类型参数默认类型
Str extends string-
Key extends string | number | symbolPickupKeys<Messages>

参数 ​

参数类型描述
keyStr | Key目标本地消息键
locale?Locales语言环境,将优先于全局作用域或局部作用域

返回值 ​

boolean 如果找到本地消息,返回 true,否则返回 false。请注意,即使键的值不可翻译,也会返回 false;但如果设置了 translateExistCompatible 为 true,即使值不可翻译也会返回 true。

备注 ​

检查 Composer 实例 Composer#messages 中是否存在的本地消息。 如果您指定了 locale,则检查 locale 的本地消息。


tm() ​

ts
tm&lt;Key, ResourceKeys, Locale, Target, Return&gt;(key): Return;

本地消息获取器

类型参数 ​

类型参数默认类型
Key extends string-
ResourceKeys extends string | number | symbolPickupKeys<Messages>
Locale extends stringPickupLocales<NonNullable<Messages>>
TargetIsEmptyObject<Messages> extends false ? NonNullable<Messages>[Locale] : RemoveIndexSignature<{ [key: string]: LocaleMessageValue<VueMessageType>; }>
ReturnResourceKeys extends ResourcePath<Target> ? ResourceValue<Target, ResourceKeys<ResourceKeys>> : Record<string, any>

参数 ​

参数类型描述
keyKey | ResourceKeys目标本地消息键

返回值 ​

Return 本地消息

备注 ​

如果在 useI18n 中指定了 I18nScope 'local' 或一些 UseI18nOptions,它会优先在局部作用域的本地消息中进行翻译,而不是全局作用域的本地消息。 基于当前的 locale,将从 Composer 实例的消息中返回本地消息。 如果您更改了 locale,返回的本地消息也将对应于该语言环境。 如果在 Composer 实例消息中没有给定 key 的本地消息,它们将在 回退 中返回。

WARNING

对于 tm 返回的本地消息,您需要使用 rt。请查看 rt 的详细信息。

示例 ​

模板块:

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 }
  }
})

属性 ​

availableLocales ​

ts
readonly availableLocales: ComputedRef&lt;Locales[]&gt;;

备注 ​

以词典顺序排列的 messages 中可用的语言环境列表。


d ​

ts
d: ComposerDateTimeFormatting&lt;DateTimeFormats, Locales, RemoveIndexSignature&lt;{
[key: string]: DateTimeFormatOptions;
}&gt;&gt;;

日期时间格式化

备注 ​

有关详细函数,请参阅 ComposerDateTimeFormatting


datetimeFormats ​

ts
readonly datetimeFormats: ComputedRef&lt;{ [K in string | number | symbol]: DateTimeFormats[K] }&gt;;

备注 ​

本地化的日期时间格式。 请参见:


escapeParameter ​

ts
escapeParameter: boolean;

备注 ​

在消息被翻译之前是否转义插值参数。 请参见:


fallbackFormat ​

ts
fallbackFormat: boolean;

备注 ​

当回退到 fallbackLocale 或根目录时是否抑制警告。 请参见:


fallbackLocale ​

ts
fallbackLocale: WritableComputedRef&lt;FallbackLocales&lt;Locales&gt;&gt;;

备注 ​

当前 Composer 实例使用的回退语言环境。 请参见:


fallbackRoot ​

ts
fallbackRoot: boolean;

备注 ​

当本地化失败时是否回退到根级(全局作用域)本地化。 请参见:


fallbackWarn ​

ts
fallbackWarn: boolean | RegExp;

备注 ​

当本地化失败时是否抑制回退警告。 请参见:


id ​

ts
id: number;

备注 ​

实例 ID。


inheritLocale ​

ts
inheritLocale: boolean;

备注 ​

是否继承根级语言环境到组件本地化语言环境。 请参见:


isGlobal ​

ts
readonly isGlobal: boolean;

备注 ​

此 Composer 实例是否为全局实例


locale ​

ts
locale: WritableComputedRef&lt;Locales&gt;;

备注 ​

当前 Composer 实例使用的语言环境。 如果语言环境包含地区和方言,这个语言环境包含隐式的回退。 请参见:


messages ​

ts
readonly messages: ComputedRef&lt;{ [K in string | number | symbol]: Messages[K] }&gt;;

备注 ​

本地化的本地消息。 请参见:


missingWarn ​

ts
missingWarn: boolean | RegExp;

备注 ​

当本地化失败时是否抑制警告输出。 请参见:


modifiers ​

ts
readonly modifiers: LinkedModifiers&lt;VueMessageType&gt;;

备注 ​

链接消息的自定义修饰符。 请参见:


n ​

ts
n: ComposerNumberFormatting&lt;NumberFormats, Locales, RemoveIndexSignature&lt;{
[key: string]: NumberFormatOptions;
}&gt;&gt;;

数字格式化

备注 ​

有关详细函数,请参阅 ComposerNumberFormatting


numberFormats ​

ts
readonly numberFormats: ComputedRef&lt;{ [K in string | number | symbol]: NumberFormats[K] }&gt;;

备注 ​

本地化的数字格式。 请参见:


pluralRules ​

ts
readonly pluralRules: PluralizationRules;

备注 ​

一组单词复数规则 请参见:


rt ​

ts
rt: ComposerResolveLocaleMessageTranslation&lt;Locales&gt;;

解析本地消息翻译

备注 ​

有关详细函数,请参阅 ComposerResolveLocaleMessageTranslation


t ​

ts
t: ComposerTranslation&lt;Messages, Locales, RemoveIndexSignature&lt;{
[key: string]: LocaleMessageValue&lt;VueMessageType&gt;;
}&gt;&gt;;

本地消息翻译

备注 ​

有关详细函数,请参阅 ComposerTranslation


warnHtmlMessage ​

ts
warnHtmlMessage: boolean;

备注 ​

是否允许使用 HTML 格式的消息。 如果您设置为 false,将检查 Composer 实例上的本地消息。 如果您指定为 true,将在控制台输出警告。 请参见: