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;但如果设置了 translateExistCompatibletrue,即使值不可翻译也会返回 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,将在控制台输出警告。 请参见: