import type { App } from 'vue'; import { CompileError } from '@intlify/core-base'; import type { ComponentInternalInstance } from 'vue'; import type { ComputedRef } from 'vue'; import { DateTimeOptions } from '@intlify/core-base'; import { FallbackLocale } from '@intlify/core-base'; import type { FallbackLocales } from '@intlify/core-base'; import { InjectionKey } from 'vue'; import { DateTimeFormat as IntlDateTimeFormat } from '@intlify/core-base'; import { DateTimeFormats as IntlDateTimeFormats } from '@intlify/core-base'; import { FormatMatcher as IntlFormatMatcher } from '@intlify/core-base'; import { LocaleMatcher as IntlLocaleMatcher } from '@intlify/core-base'; import { NumberFormat as IntlNumberFormat } from '@intlify/core-base'; import { NumberFormats as IntlNumberFormats } from '@intlify/core-base'; import { IsEmptyObject } from '@intlify/core-base'; import { IsNever } from '@intlify/core-base'; import { LinkedModifiers } from '@intlify/core-base'; import { Locale } from '@intlify/core-base'; import type { LocaleMessage } from '@intlify/core-base'; import { LocaleMessageDictionary } from '@intlify/core-base'; import { LocaleMessages } from '@intlify/core-base'; import { LocaleMessageType } from '@intlify/core-base'; import { LocaleMessageValue } from '@intlify/core-base'; import type { LocaleParams } from '@intlify/core-base'; import { MessageCompiler } from '@intlify/core-base'; import { MessageCompilerContext } from '@intlify/core-base'; import { MessageContext } from '@intlify/core-base'; import { MessageFunction } from '@intlify/core-base'; import { MessageFunctions } from '@intlify/core-base'; import { MessageResolver } from '@intlify/core-base'; import { NamedValue } from '@intlify/core-base'; import { NumberOptions } from '@intlify/core-base'; import type { ObjectDirective } from 'vue'; import { Path } from '@intlify/core-base'; import { PathValue } from '@intlify/core-base'; import type { PickupFormatKeys } from '@intlify/core-base'; import { PickupFormatPathKeys } from '@intlify/core-base'; import { PickupKeys } from '@intlify/core-base'; import type { PickupLocales } from '@intlify/core-base'; import { PickupPaths } from '@intlify/core-base'; import { PluralizationRule } from '@intlify/core-base'; import type { PluralizationRules } from '@intlify/core-base'; import { PostTranslationHandler } from '@intlify/core-base'; import { RemovedIndexResources } from '@intlify/core-base'; import type { RemoveIndexSignature } from '@intlify/core-base'; import type { ResourceNode } from '@intlify/core-base'; import type { ResourcePath } from '@intlify/core-base'; import type { ResourceValue } from '@intlify/core-base'; import type { SchemaParams } from '@intlify/core-base'; import { TranslateOptions } from '@intlify/core-base'; import type { VNode } from 'vue'; import type { VNodeProps } from 'vue'; import type { WritableComputedRef } from 'vue'; /** * BaseFormat Props for Components that is offered Vue I18n * * @remarks * The interface definitions of the underlying props of components such as Translation, DatetimeFormat, and NumberFormat. * * @VueI18nComponent */ export declare interface BaseFormatProps { /** * @remarks * Used to wrap the content that is distribute in the slot. If omitted, the slot content is treated as Fragments. * * You can specify a string-based tag name, such as `p`, or the object for which the component is defined. */ tag?: string | object; /** * @remarks * Specifies the locale to be used for the component. * * If specified, the global scope or the locale of the parent scope of the target component will not be overridden and the specified locale will be used. */ locale?: Locale; /** * @remarks * Specifies the scope to be used in the target component. * * You can specify either `global` or `parent`. * * If `global` is specified, global scope is used, else then `parent` is specified, the scope of the parent of the target component is used. * * If the parent is a global scope, the global scope is used, if it's a local scope, the local scope is used. */ scope?: ComponentI18nScope; /** * @remarks * A composer instance with an existing scope. * * This option takes precedence over the `scope` option. */ i18n?: Composer; } /** * Cast to VueI18n legacy compatible type * * @remarks * This API is provided only with [vue-i18n-bridge](https://vue-i18n.intlify.dev/guide/migration/ways.html#what-is-vue-i18n-bridge). * * The purpose of this function is to convert an {@link I18n} instance created with {@link createI18n | createI18n(legacy: true)} into a `vue-i18n@v8.x` compatible instance of `new VueI18n` in a TypeScript environment. * * @param i18n - An instance of {@link I18n} * @returns A i18n instance which is casted to {@link VueI18n} type * * @VueI18nTip * :new: provided by **vue-i18n-bridge only** * * @VueI18nGeneral */ export declare const castToVueI18n: (i18n: I18n) => VueI18n<{}, {}, {}, string, never, string, Composer<{}, {}, {}, string, never, string>> & { install: (Vue: any, options?: any) => void; }; export declare type Choice = number; export { CompileError } export declare type ComponentI18nScope = Exclude; /** * Composer interfaces * * @remarks * This is the interface for being used for Vue 3 Composition API. * * @VueI18nComposition */ export declare interface Composer = {}, DateTimeFormats extends Record = {}, NumberFormats extends Record = {}, OptionLocale = Locale, ResourceLocales = PickupLocales> | PickupLocales> | PickupLocales>, Locales = OptionLocale extends Locale ? IsNever extends true ? Locale : ResourceLocales : OptionLocale | ResourceLocales> extends ComposerCustom { /** * @remarks * Instance ID. */ id: number; /** * @remarks * The current locale this Composer instance is using. * * If the locale contains a territory and a dialect, this locale contains an implicit fallback. * * @VueI18nSee [Scope and Locale Changing](../guide/essentials/scope) */ locale: WritableComputedRef; /** * @remarks * The current fallback locales this Composer instance is using. * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) */ fallbackLocale: WritableComputedRef>; /** * @remarks * Whether inherit the root level locale to the component localization locale. * * @VueI18nSee [Local Scope](../guide/essentials/scope#local-scope-2) */ inheritLocale: boolean; /** * @remarks * The list of available locales in `messages` in lexical order. */ readonly availableLocales: Locales[]; /** * @remarks * The locale messages of localization. * * @VueI18nSee [Getting Started](../guide/essentials/started) */ readonly messages: ComputedRef<{ [K in keyof Messages]: Messages[K]; }>; /** * @remarks * The datetime formats of localization. * * @VueI18nSee [Datetime Formatting](../guide/essentials/datetime) */ readonly datetimeFormats: ComputedRef<{ [K in keyof DateTimeFormats]: DateTimeFormats[K]; }>; /** * @remarks * The number formats of localization. * * @VueI18nSee [Number Formatting](../guide/essentials/number) */ readonly numberFormats: ComputedRef<{ [K in keyof NumberFormats]: NumberFormats[K]; }>; /** * @remarks * Custom Modifiers for linked messages. * * @VueI18nSee [Custom Modifiers](../guide/essentials/syntax#custom-modifiers) */ readonly modifiers: LinkedModifiers; /** * @remarks * A set of rules for word pluralization * * @VueI18nSee [Custom Pluralization](../guide/essentials/pluralization#custom-pluralization) */ readonly pluralRules: PluralizationRules; /** * @remarks * Whether this composer instance is global or not */ readonly isGlobal: boolean; /** * @remarks * Whether suppress warnings outputted when localization fails. * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) */ missingWarn: boolean | RegExp; /** * @remarks * Whether suppress fall back warnings when localization fails. * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) */ fallbackWarn: boolean | RegExp; /** * @remarks * Whether to fall back to root level (global scope) localization when localization fails. * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) */ fallbackRoot: boolean; /** * @remarks * Whether suppress warnings when falling back to either `fallbackLocale` or root. * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) */ fallbackFormat: boolean; /** * @remarks * Whether to allow the use locale messages of HTML formatting. * * If you set `false`, will check the locale messages on the Composer instance. * * If you are specified `true`, a warning will be output at console. * * @VueI18nSee [HTML Message](../guide/essentials/syntax#html-message) * @VueI18nSee [Change `warnHtmlInMessage` option default value](../guide/migration/breaking#change-warnhtmlinmessage-option-default-value) */ warnHtmlMessage: boolean; /** * @remarks * Whether interpolation parameters are escaped before the message is translated. * * @VueI18nSee [HTML Message](../guide/essentials/syntax#html-message) */ escapeParameter: boolean; /** * Locale message translation * * @remarks * About details functions, See the {@link ComposerTranslation} */ t: ComposerTranslation>; /** * Resolve locale message translation * * @remarks * About details functions, See the {@link ComposerResolveLocaleMessageTranslation} */ rt: ComposerResolveLocaleMessageTranslation; /** * Datetime formatting * * @remarks * About details functions, See the {@link ComposerDateTimeFormatting} */ d: ComposerDateTimeFormatting>; /** * Number Formatting * * @remarks * About details functions, See the {@link ComposerNumberFormatting} */ n: ComposerNumberFormatting>; /** * Translation locale message exist * * @remarks * whether do exist locale message on Composer instance [messages](composition#messages). * * If you specified `locale`, check the locale messages of `locale`. * * @param key - A target locale message key * @param locale - A locale, it will be used over than global scope or local scope * * @returns If found locale message, `true`, else `false`, Note that `false` is returned even if the value present in the key is not translatable, yet if `translateExistCompatible` is set to `true`, it will return `true` if the key is available, even if the value is not translatable. */ te = PickupKeys>(key: Str | Key, locale?: Locales): boolean; /** * Locale messages getter * * @remarks * If [UseI18nScope](general#usei18nscope) `'local'` or Some [UseI18nOptions](composition#usei18noptions) are specified at `useI18n`, it’s translated in preferentially local scope locale messages than global scope locale messages. * * Based on the current `locale`, locale messages will be returned from Composer instance messages. * * If you change the `locale`, the locale messages returned will also correspond to the locale. * * If there are no locale messages for the given `key` in the composer instance messages, they will be returned with [fallbacking](../guide/essentials/fallback). * * @VueI18nWarning * You need to use `rt` for the locale message returned by `tm`. see the [rt](composition#rt-message) details. * * @example * template block: * ```html *
* *
* ``` * script block: * ```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 } * } * }) * ``` * * @param key - A target locale message key * * @return Locale messages */ tm = PickupKeys, Locale extends PickupLocales> = PickupLocales>, Target = IsEmptyObject extends false ? NonNullable[Locale] : RemoveIndexSignature<{ [K in keyof DefineLocaleMessage]: DefineLocaleMessage[K]; }>, Return = ResourceKeys extends ResourcePath ? ResourceValue : Record>(key: Key | ResourceKeys): Return; /** * Get locale message * * @remarks * get locale message from Composer instance [messages](composition#messages). * * @param locale - A target locale * * @typeParam MessageSchema - The locale message schema, default `never` * * @returns Locale messages */ getLocaleMessage = never, LocaleSchema extends string = string, Locale extends PickupLocales> = PickupLocales>, Return = IsNever extends true ? IsEmptyObject extends true ? RemoveIndexSignature<{ [K in keyof DefineLocaleMessage]: DefineLocaleMessage[K]; }> : NonNullable[Locale] : MessageSchema>(locale: LocaleSchema | Locale): Return; /** * Set locale message * * @remarks * Set locale message to Composer instance [messages](composition#messages). * * @param locale - A target locale * @param message - A message * * @typeParam MessageSchema - The locale message schema, default `never` */ setLocaleMessage = never, LocaleSchema extends string = string, Locale extends PickupLocales> = PickupLocales>, MessageType = IsNever extends true ? IsEmptyObject extends true ? RemoveIndexSignature<{ [K in keyof DefineLocaleMessage]: DefineLocaleMessage[K]; }> : NonNullable[Locale] : MessageSchema, Message extends MessageType = MessageType>(locale: LocaleSchema | Locale, message: Message): void; /** * Merge locale message * * @remarks * Merge locale message to Composer instance [messages](composition#messages). * * @param locale - A target locale * @param message - A message * * @typeParam MessageSchema - The locale message schema, default `never` */ mergeLocaleMessage = never, LocaleSchema extends string = string, Locale extends PickupLocales> = PickupLocales>, Message = IsNever extends true ? Record : MessageSchema>(locale: LocaleSchema | Locale, message: Message): void; /** * Get datetime format * * @remarks * get datetime format from Composer instance [datetimeFormats](composition#datetimeformats). * * @param locale - A target locale * * @typeParam DateTimeSchema - The datetime format schema, default `never` * * @returns Datetime format */ getDateTimeFormat = never, LocaleSchema extends string = string, Locale extends PickupLocales> = PickupLocales>, Return = IsNever extends true ? IsEmptyObject extends true ? RemoveIndexSignature<{ [K in keyof DefineDateTimeFormat]: DefineDateTimeFormat[K]; }> : NonNullable[Locale] : DateTimeSchema>(locale: LocaleSchema | Locale): Return; /** * Set datetime format * * @remarks * Set datetime format to Composer instance [datetimeFormats](composition#datetimeformats). * * @param locale - A target locale * @param format - A target datetime format * * @typeParam DateTimeSchema - The datetime format schema, default `never` */ setDateTimeFormat = never, LocaleSchema extends string = string, Locale extends PickupLocales> = PickupLocales>, FormatsType = IsNever extends true ? IsEmptyObject extends true ? RemoveIndexSignature<{ [K in keyof DefineDateTimeFormat]: DefineDateTimeFormat[K]; }> : NonNullable[Locale] : DateTimeSchema, Formats extends FormatsType = FormatsType>(locale: LocaleSchema | Locale, format: Formats): void; /** * Merge datetime format * * @remarks * Merge datetime format to Composer instance [datetimeFormats](composition#datetimeformats). * * @param locale - A target locale * @param format - A target datetime format * * @typeParam DateTimeSchema - The datetime format schema, default `never` */ mergeDateTimeFormat = never, LocaleSchema extends string = string, Locale extends PickupLocales> = PickupLocales>, Formats = IsNever extends true ? Record : DateTimeSchema>(locale: LocaleSchema | Locale, format: Formats): void; /** * Get number format * * @remarks * get number format from Composer instance [numberFormats](composition#numberFormats). * * @param locale - A target locale * * @typeParam NumberSchema - The number format schema, default `never` * * @returns Number format */ getNumberFormat = never, LocaleSchema extends string = string, Locale extends PickupLocales> = PickupLocales>, Return = IsNever extends true ? IsEmptyObject extends true ? RemoveIndexSignature<{ [K in keyof DefineNumberFormat]: DefineNumberFormat[K]; }> : NonNullable[Locale] : NumberSchema>(locale: LocaleSchema | Locale): Return; /** * Set number format * * @remarks * Set number format to Composer instance [numberFormats](composition#numberFormats). * * @param locale - A target locale * @param format - A target number format * * @typeParam NumberSchema - The number format schema, default `never` */ setNumberFormat = never, LocaleSchema extends string = string, Locale extends PickupLocales> = PickupLocales>, FormatsType = IsNever extends true ? IsEmptyObject extends true ? RemoveIndexSignature<{ [K in keyof DefineNumberFormat]: DefineNumberFormat[K]; }> : NonNullable[Locale] : NumberSchema, Formats extends FormatsType = FormatsType>(locale: LocaleSchema | Locale, format: Formats): void; /** * Merge number format * * @remarks * Merge number format to Composer instance [numberFormats](composition#numberFormats). * * @param locale - A target locale * @param format - A target number format * * @typeParam NumberSchema - The number format schema, default `never` */ mergeNumberFormat = never, LocaleSchema extends string = string, Locale extends PickupLocales> = PickupLocales>, Formats = IsNever extends true ? Record : NumberSchema>(locale: LocaleSchema | Locale, format: Formats): void; /** * Get post translation handler * * @returns {@link PostTranslationHandler} * * @VueI18nSee [missing](composition#posttranslation) */ getPostTranslationHandler(): PostTranslationHandler | null; /** * Set post translation handler * * @param handler - A {@link PostTranslationHandler} * * @VueI18nSee [missing](composition#posttranslation) */ setPostTranslationHandler(handler: PostTranslationHandler | null): void; /** * Get missing handler * * @returns {@link MissingHandler} * * @VueI18nSee [missing](composition#missing) */ getMissingHandler(): MissingHandler | null; /** * Set missing handler * * @param handler - A {@link MissingHandler} * * @VueI18nSee [missing](composition#missing) */ setMissingHandler(handler: MissingHandler | null): void; } /** * Composer additional options for `useI18n` * * @remarks * `ComposerAdditionalOptions` is extend for {@link ComposerOptions}, so you can specify these options. * * @VueI18nSee [useI18n](composition#usei18n) * * @VueI18nComposition */ export declare interface ComposerAdditionalOptions { useScope?: I18nScope; } /** * The type custom definition of Composer * * @remarks * * The interface that can extend Composer. * * The type defined by 3rd party (e.g. nuxt/i18n) * * @example * ```ts * // vue-i18n.d.ts (`.d.ts` file at your app) * * declare module 'vue-i18n' { * interface ComposerCustom { * localeCodes: string[] * } * } * ``` * * @VueI18nComposition */ export declare interface ComposerCustom { } /** * Datetime formatting functions * * @remarks * This is the interface for {@link Composer} * * @VueI18nComposition */ export declare interface ComposerDateTimeFormatting = {}, Locales = 'en-US', DefinedDateTimeFormat extends RemovedIndexResources = RemovedIndexResources, C = IsEmptyObject extends false ? PickupFormatPathKeys<{ [K in keyof DefinedDateTimeFormat]: DefinedDateTimeFormat[K]; }> : never, M = IsEmptyObject extends false ? PickupFormatKeys : never, ResourceKeys extends C | M = IsNever extends false ? IsNever extends false ? C | M : C : IsNever extends false ? M : never> { /** * Datetime formatting * * @remarks * If this is used in a reactive context, it will re-evaluate once the locale changes. * * If [UseI18nScope](general#usei18nscope) `'local'` or Some [UseI18nOptions](composition#usei18noptions) are specified at `useI18n`, it’s translated in preferentially local scope datetime formats than global scope datetime formats. * * If not, then it’s formatted with global scope datetime formats. * * @param value - A value, timestamp number or `Date` instance or ISO 8601 string * * @returns Formatted value * * @VueI18nSee [Datetime formatting](../guide/essentials/datetime) */ (value: number | Date | string): string; /** * Datetime formatting * * @remarks * Overloaded `d`. About details, see the [call signature](composition#value-number-date-string-string) details. * * In this overloaded `d`, format in datetime format for a key registered in datetime formats. * * @param value - A value, timestamp number or `Date` instance or ISO 8601 string * @param keyOrOptions - A key of datetime formats, or additional {@link DateTimeOptions | options} for datetime formatting * * @returns Formatted value */ (value: Value, keyOrOptions: Key | ResourceKeys | DateTimeOptions): string; /** * Datetime formatting * * @remarks * Overloaded `d`. About details, see the [call signature](composition#value-number-date-string-string) details. * * In this overloaded `d`, format in datetime format for a key registered in datetime formats at target locale * * @param value - A value, timestamp number or `Date` instance or ISO 8601 string * @param keyOrOptions - A key of datetime formats, or additional {@link DateTimeOptions | options} for datetime formatting * @param locale - A locale, it will be used over than global scope or local scope. * * @returns Formatted value */ (value: Value, keyOrOptions: Key | ResourceKeys | DateTimeOptions, locale: Locales): string; } export declare type ComposerExtender = (composer: Composer) => Disposer | undefined; /** * Number formatting functions * * @remarks * This is the interface for {@link Composer} * * @VueI18nComposition */ export declare interface ComposerNumberFormatting = {}, Locales = 'en-US', DefinedNumberFormat extends RemovedIndexResources = RemovedIndexResources, C = IsEmptyObject extends false ? PickupFormatPathKeys<{ [K in keyof DefinedNumberFormat]: DefinedNumberFormat[K]; }> : never, M = IsEmptyObject extends false ? PickupFormatKeys : never, ResourceKeys extends C | M = IsNever extends false ? IsNever extends false ? C | M : C : IsNever extends false ? M : never> { /** * Number Formatting * * @remarks * If this is used in a reactive context, it will re-evaluate once the locale changes. * * If [UseI18nScope](general#usei18nscope) `'local'` or Some [UseI18nOptions](composition#usei18noptions) are specified at `useI18n`, it’s translated in preferentially local scope datetime formats than global scope datetime formats. * * If not, then it’s formatted with global scope number formats. * * @param value - A number value * * @returns Formatted value * * @VueI18nSee [Number formatting](../guide/essentials/number) */ (value: number): string; /** * Number Formatting * * @remarks * Overloaded `n`. About details, see the [call signature](composition#value-number-string) details. * * In this overloaded `n`, format in number format for a key registered in number formats. * * @param value - A number value * @param keyOrOptions - A key of number formats, or additional {@link NumberOptions | options} for number formatting * * @returns Formatted value */ (value: number, keyOrOptions: Key | ResourceKeys | NumberOptions): string; /** * Number Formatting * * @remarks * Overloaded `n`. About details, see the [call signature](composition#value-number-string) details. * * In this overloaded `n`, format in number format for a key registered in number formats at target locale. * * @param value - A number value * @param keyOrOptions - A key of number formats, or additional {@link NumberOptions | options} for number formatting * @param locale - A locale, it will be used over than global scope or local scope. * * @returns Formatted value */ (value: number, keyOrOptions: Key | ResourceKeys | NumberOptions, locale: Locales): string; } /** * Composer Options * * @remarks * This is options to create composer. * * @VueI18nComposition */ export declare interface ComposerOptions = LocaleMessages, _DateTimeFormats extends IntlDateTimeFormats = IntlDateTimeFormats, _NumberFormats extends IntlNumberFormats = IntlNumberFormats> { /** * @remarks * The locale of localization. * * If the locale contains a territory and a dialect, this locale contains an implicit fallback. * * @VueI18nSee [Scope and Locale Changing](../guide/essentials/scope) * * @defaultValue `'en-US'` */ locale?: Locale; /** * @remarks * The locale of fallback localization. * * For more complex fallback definitions see fallback. * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) * * @defaultValue The default `'en-US'` for the `locale` if it's not specified, or it's `locale` value */ fallbackLocale?: FallbackLocale; /** * @remarks * Whether inheritance the root level locale to the component localization locale. * * If `false`, regardless of the root level locale, localize for each component locale. * * @VueI18nSee [Local Scope](../guide/essentials/scope#local-scope-2) * * @defaultValue `true` */ inheritLocale?: boolean; /** * @remarks * The locale messages of localization. * * @VueI18nSee [Getting Started](../guide/essentials/started) * * @defaultValue `{}` */ messages?: { [K in keyof _Messages]: MessageSchema; }; /** * @remarks * Allow use flat json messages or not * * @defaultValue `false` */ flatJson?: boolean; /** * @remarks * The datetime formats of localization. * * @VueI18nSee [Datetime Formatting](../guide/essentials/datetime) * * @defaultValue `{}` */ datetimeFormats?: { [K in keyof _DateTimeFormats]: DateTimeSchema; }; /** * @remarks * The number formats of localization. * * @VueI18nSee [Number Formatting](../guide/essentials/number) * * @defaultValue `{}` */ numberFormats?: { [K in keyof _NumberFormats]: NumberSchema; }; /** * @remarks * Custom Modifiers for linked messages. * * @VueI18nSee [Custom Modifiers](../guide/essentials/syntax#custom-modifiers) */ modifiers?: LinkedModifiers; /** * @remarks * A set of rules for word pluralization * * @VueI18nSee [Custom Pluralization](../guide/essentials/pluralization#custom-pluralization) * * @defaultValue `{}` */ pluralRules?: PluralizationRules; /** * @remarks * A handler for localization missing. * * The handler gets called with the localization target locale, localization path key, the Vue instance and values. * * If missing handler is assigned, and occurred localization missing, it's not warned. * * @defaultValue `null` */ missing?: MissingHandler; /** * @remarks * Whether suppress warnings outputted when localization fails. * * If `false`, suppress localization fail warnings. * * If you use regular expression, you can suppress localization fail warnings that it match with translation key (e.g. `t`). * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) * * @defaultValue `true` */ missingWarn?: boolean | RegExp; /** * @remarks * Whether suppress warnings when falling back to either `fallbackLocale` or root. * * If `false`, suppress fall back warnings. * * If you use regular expression, you can suppress fallback warnings that it match with translation key (e.g. `t`). * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) * * @defaultValue `true` */ fallbackWarn?: boolean | RegExp; /** * @remarks * In the component localization, whether to fallback to root level (global scope) localization when localization fails. * * If `false`, it's not fallback to root. * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) * * @defaultValue `true` */ fallbackRoot?: boolean; /** * @remarks * Whether do template interpolation on translation keys when your language lacks a translation for a key. * * If `true`, skip writing templates for your "base" language; the keys are your templates. * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) * * @defaultValue `false` */ fallbackFormat?: boolean; /** * @remarks * A handler for post processing of translation. * * The handler gets after being called with the `t`. * * This handler is useful if you want to filter on translated text such as space trimming. * * @defaultValue `null` */ postTranslation?: PostTranslationHandler; /** * @remarks * Whether to allow the use locale messages of HTML formatting. * * See the warnHtmlMessage property. * * @VueI18nSee [HTML Message](../guide/essentials/syntax#html-message) * @VueI18nSee [Change `warnHtmlInMessage` option default value](../guide/migration/breaking#change-warnhtmlinmessage-option-default-value) * * @defaultValue `'off'` */ warnHtmlMessage?: boolean; /** * @remarks * If `escapeParameter` is configured as true then interpolation parameters are escaped before the message is translated. * * This is useful when translation output is used in `v-html` and the translation resource contains html markup (e.g. around a user provided value). * * This usage pattern mostly occurs when passing precomputed text strings into UI components. * * The escape process involves replacing the following symbols with their respective HTML character entities: `<`, `>`, `"`, `'`. * * Setting `escapeParameter` as true should not break existing functionality but provides a safeguard against a subtle type of XSS attack vectors. * * @VueI18nSee [HTML Message](../guide/essentials/syntax#html-message) * * @defaultValue `false` */ escapeParameter?: boolean; /** * @remarks * A message resolver to resolve [`messages`](composition#messages). * * If not specified, the vue-i18n internal message resolver will be used by default. * * You need to implement a message resolver yourself that supports the following requirements: * * - Resolve the message using the locale message of [`locale`](composition#locale) passed as the first argument of the message resolver, and the path passed as the second argument. * * - If the message could not be resolved, you need to return `null`. * * - If you will be returned `null`, the message resolver will also be called on fallback if [`fallbackLocale`](composition#fallbacklocale-2) is enabled, so the message will need to be resolved as well. * * The message resolver is called indirectly by the following APIs: * * - [`t`](composition#t-key) * * - [`te`](composition#te-key-locale) * * - [`tm`](composition#tm-key) * * - [Translation component](component#translation) * * @example * Here is an example of how to set it up using your `createI18n`: * ```js * import { createI18n } from 'vue-i18n' * * // your message resolver * function messageResolver(obj, path) { * // simple message resolving! * const msg = obj[path] * return msg != null ? msg : null * } * * // call with I18n option * const i18n = createI18n({ * legacy: false, * locale: 'ja', * messageResolver, // set your message resolver * messages: { * en: { ... }, * ja: { ... } * } * }) * * // the below your something to do ... * // ... * ``` * * @VueI18nTip * :new: v9.2+ * * @VueI18nWarning * If you use the message resolver, the [`flatJson`](composition#flatjson) setting will be ignored. That is, you need to resolve the flat JSON by yourself. * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) * * @defaultValue `undefined` */ messageResolver?: MessageResolver; /** * @remarks * A compiler for custom message format. * * If not specified, the vue-i18n default message compiler will be used. * * You will need to implement your own message compiler that returns Message Functions * * @example * Here is an example of how to custom message compiler with `intl-messageformat` * * ```js * import { createI18n } from 'vue-i18n' * import IntlMessageFormat from 'intl-messageformat' * * function messageCompiler(message, { locale, key, onError }) { * if (typeof message === 'string') { * // You can tune your message compiler performance more with your cache strategy or also memoization at here * const formatter = new IntlMessageFormat(message, locale) * return ctx => formatter.format(ctx.values) * } else { * // If you would like to support it for AST, * // You need to transform locale mesages such as `json`, `yaml`, etc. with the bundle plugin. * onError && onError(new Error('not support for AST')) * return () => key // return default with `key` * } * } * * // call with I18n option * const i18n = createI18n({ * legacy: false, * locale: 'ja', * messageCompiler, // set your message compiler * messages: { * en: { * hello: 'hello world!', * greeting: 'hi, {name}!', * // ICU Message format * photo: `You have {numPhotos, plural, * =0 {no photos.} * =1 {one photo.} * other {# photos.} * }` * }, * } * }) * * // the below your something to do ... * // ... * ``` * * @VueI18nTip * :new: v9.3+ * * @VueI18nWarning * The Custom Message Format is an experimental feature. It may receive breaking changes or be removed in the future. * * @VueI18nSee [Custom Message Format](../guide/advanced/format) * * @defaultValue `undefined` */ messageCompiler?: MessageCompiler; /** * @remarks * An option to make `te` behavior specification before v9.6 * * @VueI18nTip * :new: v9.10+ * * @VueI18nWarning * This flag will be removed in v10. * * @VueI18nSee [GitHub Issue](https://github.com/intlify/vue-i18n-next/issues/1738) * * @VueI18nSee [`te`](composition#te-key-locale) * * @defaultValue `false` * */ translateExistCompatible?: boolean; } /** * Resolve locale message translation functions * * @remarks * This is the interface for {@link Composer} * * @VueI18nComposition */ export declare interface ComposerResolveLocaleMessageTranslation { /** * Resolve locale message translation * * @remarks * If this is used in a reactive context, it will re-evaluate once the locale changes. * * If [UseI18nScope](general#usei18nscope) `'local'` or Some [UseI18nOptions](composition#usei18noptions) are specified at `useI18n`, it’s translated in preferentially local scope locale messages than global scope locale messages. * * If not, then it’s translated with global scope locale messages. * * @VueI18nTip * The use-case for `rt` is for programmatic locale messages translation with using `tm`, `v-for`, javascript `for` statement. * * @VueI18nWarning * `rt` differs from `t` in that it processes the locale message directly, not the key of the locale message. There is no internal fallback with `rt`. You need to understand and use the structure of the locale messge returned by `tm`. * * @param message - A target locale message to be resolved. You will need to specify the locale message returned by `tm`. * * @returns Translated message * * @VueI18nSee [Scope and Locale Changing](../guide/essentials/scope) */ (message: MessageFunction | VueMessageType): string; /** * Resolve locale message translation for plurals * * @remarks * Overloaded `rt`. About details, see the [call signature](composition#message-messagefunction-message-message-string) details. * * In this overloaded `rt`, return a pluralized translation message. * * @VueI18nTip * The use-case for `rt` is for programmatic locale messages translation with using `tm`, `v-for`, javascript `for` statement. * * @VueI18nWarning * `rt` differs from `t` in that it processes the locale message directly, not the key of the locale message. There is no internal fallback with `rt`. You need to understand and use the structure of the locale messge returned by `tm`. * * @param message - A target locale message to be resolved. You will need to specify the locale message returned by `tm`. * @param plural - Which plural string to get. 1 returns the first one. * @param options - Additional {@link TranslateOptions | options} for translation * * @returns Translated message * * @VueI18nSee [Pluralization](../guide/essentials/pluralization) */ (message: MessageFunction | VueMessageType, plural: number, options?: TranslateOptions): string; /** * Resolve locale message translation for list interpolations * * @remarks * Overloaded `rt`. About details, see the [call signature](composition#message-messagefunction-message-message-string) details. * * In this overloaded `rt`, return a pluralized translation message. * * @VueI18nTip * The use-case for `rt` is for programmatic locale messages translation with using `tm`, `v-for`, javascript `for` statement. * * @VueI18nWarning * `rt` differs from `t` in that it processes the locale message directly, not the key of the locale message. There is no internal fallback with `rt`. You need to understand and use the structure of the locale messge returned by `tm`. * * @param message - A target locale message to be resolved. You will need to specify the locale message returned by `tm`. * @param list - A values of list interpolation. * @param options - Additional {@link TranslateOptions | options} for translation * * @returns Translated message * * @VueI18nSee [List interpolation](../guide/essentials/syntax#list-interpolation) */ (message: MessageFunction | VueMessageType, list: unknown[], options?: TranslateOptions): string; /** * Resolve locale message translation for named interpolations * * @remarks * Overloaded `rt`. About details, see the [call signature](composition#message-messagefunction-message-message-string) details. * * In this overloaded `rt`, for each placeholder x, the locale messages should contain a `{x}` token. * * @VueI18nTip * The use-case for `rt` is for programmatic locale messages translation with using `tm`, `v-for`, javascript `for` statement. * * @VueI18nWarning * `rt` differs from `t` in that it processes the locale message directly, not the key of the locale message. There is no internal fallback with `rt`. You need to understand and use the structure of the locale messge returned by `tm`. * * @param message - A target locale message to be resolved. You will need to specify the locale message returned by `tm`. * @param named - A values of named interpolation. * @param options - Additional {@link TranslateOptions | options} for translation * * @returns Translated message * * @VueI18nSee [Named interpolation](../guide/essentials/syntax#named-interpolation) */ (message: MessageFunction | VueMessageType, named: NamedValue, options?: TranslateOptions): string; } /** * Locale message translation functions * * @remarks * This is the interface for {@link Composer} * * @VueI18nComposition */ export declare interface ComposerTranslation = {}, Locales = 'en-US', DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, C = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K]; }> : never, M = IsEmptyObject extends false ? PickupKeys : never, ResourceKeys extends C | M = IsNever extends false ? IsNever extends false ? C | M : C : IsNever extends false ? M : never> { /** * Locale message translation * * @remarks * If this is used in a reactive context, it will re-evaluate once the locale changes. * * If [UseI18nScope](general#usei18nscope) `'local'` or Some [UseI18nOptions](composition#usei18noptions) are specified at `useI18n`, it’s translated in preferentially local scope locale messages than global scope locale messages. * * If not, then it’s translated with global scope locale messages. * * @param key - A target locale message key * * @returns Translated message * * @VueI18nSee [Scope and Locale Changing](../guide/essentials/scope) */ (key: Key | ResourceKeys | number): string; /** * Locale message translation for plurals * * @remarks * Overloaded `t`. About details, see the [call signature](composition#key-key-resourcekeys-number-string) details. * * In this overloaded `t`, return a pluralized translation message. * * You can also suppress the warning, when the translation missing according to the options. * * About details of options, see the {@link TranslateOptions}. * * @param key - A target locale message key * @param plural - Which plural string to get. 1 returns the first one. * @param options - Additional {@link TranslateOptions | options} for translation * * @returns Translated message * * @VueI18nSee [Pluralization](../guide/essentials/pluralization) */ (key: Key | ResourceKeys | number, plural: number, options?: TranslateOptions): string; /** * Locale message translation for missing default message * * @remarks * Overloaded `t`. About details, see the [call signature](composition#key-key-resourcekeys-number-string) details. * * In this overloaded `t`, if no translation was found, return a default message. * * You can also suppress the warning, when the translation missing according to the options. * * About details of options, see the {@link TranslateOptions}. * * @param key - A target locale message key * @param defaultMsg - A default message to return if no translation was found * @param options - Additional {@link TranslateOptions | options} for translation * * @returns Translated message */ (key: Key | ResourceKeys | number, defaultMsg: string, options?: TranslateOptions): string; /** * Locale message translation for list interpolations * * @remarks * Overloaded `t`. About details, see the [call signature](composition#key-key-resourcekeys-number-string) details. * * In this overloaded `t`, the locale messages should contain a `{0}`, `{1}`, … for each placeholder in the list. * * You can also suppress the warning, when the translation missing according to the options. * * About details of options, see the {@link TranslateOptions}. * * @param key - A target locale message key * @param list - A values of list interpolation * @param options - Additional {@link TranslateOptions | options} for translation * * @returns Translated message * * @VueI18nSee [List interpolation](../guide/essentials/syntax#list-interpolation) */ (key: Key | ResourceKeys | number, list: unknown[], options?: TranslateOptions): string; /** * Locale message translation for list interpolations and plurals * * @remarks * Overloaded `t`. About details, see the [call signature](composition#key-key-resourcekeys-number-string) details. * * In this overloaded `t`, the locale messages should contain a `{0}`, `{1}`, … for each placeholder in the list, and return a pluralized translation message. * * @param key - A target locale message key * @param list - A values of list interpolation * @param plural - Which plural string to get. 1 returns the first one. * * @returns Translated message * * @VueI18nSee [Pluralization](../guide/essentials/pluralization) * @VueI18nSee [List interpolation](../guide/essentials/syntax#list-interpolation) */ (key: Key | ResourceKeys | number, list: unknown[], plural: number): string; /** * Locale message translation for list interpolations and missing default message * * @remarks * Overloaded `t`. About details, see the [call signature](composition#key-key-resourcekeys-number-string) details. * * In this overloaded `t`, the locale messages should contain a `{0}`, `{1}`, … for each placeholder in the list, and if no translation was found, return a default message. * * @param key - A target locale message key * @param list - A values of list interpolation * @param defaultMsg - A default message to return if no translation was found * * @returns Translated message * * @VueI18nSee [List interpolation](../guide/essentials/syntax#list-interpolation) */ (key: Key | ResourceKeys | number, list: unknown[], defaultMsg: string): string; /** * Locale message translation for named interpolations * * @remarks * Overloaded `t`. About details, see the [call signature](composition#key-key-resourcekeys-number-string) details. * * In this overloaded `t`, for each placeholder x, the locale messages should contain a `{x}` token. * * You can also suppress the warning, when the translation missing according to the options. * * About details of options, see the {@link TranslateOptions}. * * @param key - A target locale message key * @param named - A values of named interpolation * @param options - Additional {@link TranslateOptions | options} for translation * * @returns Translated message * * @VueI18nSee [Named interpolation](../guide/essentials/syntax#named-interpolation) */ (key: Key | ResourceKeys | number, named: NamedValue, options?: TranslateOptions): string; /** * Locale message translation for named interpolations and plurals * * @remarks * Overloaded `t`. About details, see the [call signature](composition#key-key-resourcekeys-number-string) details. * * In this overloaded `t`, for each placeholder x, the locale messages should contain a `{x}` token, and return a pluralized translation message. * * @param key - A target locale message key * @param named - A values of named interpolation * @param plural - Which plural string to get. 1 returns the first one. * * @returns Translated message * * @VueI18nSee [Pluralization](../guide/essentials/pluralization) * @VueI18nSee [Named interpolation](../guide/essentials/syntax#named-interpolation) */ (key: Key | ResourceKeys | number, named: NamedValue, plural: number): string; /** * Locale message translation for named interpolations and plurals * * @remarks * Overloaded `t`. About details, see the [call signature](composition#key-key-resourcekeys-number-string) details. * * In this overloaded `t`, for each placeholder x, the locale messages should contain a `{x}` token, and if no translation was found, return a default message. * * @param key - A target locale message key * @param named - A values of named interpolation * @param defaultMsg - A default message to return if no translation was found * * @returns Translated message * * @VueI18nSee [Named interpolation](../guide/essentials/syntax#named-interpolation) */ (key: Key | ResourceKeys | number, named: NamedValue, defaultMsg: string): string; } export declare function createI18n = Options['messages'] extends Record ? Options['messages'] : {}, DateTimeFormats extends Record = Options['datetimeFormats'] extends Record ? Options['datetimeFormats'] : {}, NumberFormats extends Record = Options['numberFormats'] extends Record ? Options['numberFormats'] : {}, OptionLocale = Options['locale'] extends string ? Options['locale'] : Locale>(options: Options, LegacyVueI18n?: any): (typeof options)['legacy'] extends true ? I18n : (typeof options)['legacy'] extends false ? I18n : I18n; /** * Vue I18n factory * * @param options - An options, see the {@link I18nOptions} * * @typeParam Schema - The i18n resources (messages, datetimeFormats, numberFormats) schema, default {@link LocaleMessage} * @typeParam Locales - The locales of i18n resource schema, default `en-US` * @typeParam Legacy - Whether legacy mode is enabled or disabled, default `true` * * @returns {@link I18n} instance * * @remarks * If you use Legacy API mode, you need to specify {@link VueI18nOptions} and `legacy: true` option. * * If you use composition API mode, you need to specify {@link ComposerOptions}. * * @VueI18nSee [Getting Started](../guide/essentials/started) * @VueI18nSee [Composition API](../guide/advanced/composition) * * @example * case: for Legacy API * ```js * import { createApp } from 'vue' * import { createI18n } from 'vue-i18n' * * // call with I18n option * const i18n = createI18n({ * locale: 'ja', * messages: { * en: { ... }, * ja: { ... } * } * }) * * const App = { * // ... * } * * const app = createApp(App) * * // install! * app.use(i18n) * app.mount('#app') * ``` * * @example * case: for composition API * ```js * import { createApp } from 'vue' * import { createI18n, useI18n } from 'vue-i18n' * * // call with I18n option * const i18n = createI18n({ * legacy: false, // you must specify 'legacy: false' option * locale: 'ja', * messages: { * en: { ... }, * ja: { ... } * } * }) * * const App = { * setup() { * // ... * const { t } = useI18n({ ... }) * return { ... , t } * } * } * * const app = createApp(App) * * // install! * app.use(i18n) * app.mount('#app') * ``` * * @VueI18nGeneral */ export declare function createI18n, LocaleParams> = I18nOptions, LocaleParams>, Messages extends Record = NonNullable extends Record ? NonNullable : {}, DateTimeFormats extends Record = NonNullable extends Record ? NonNullable : {}, NumberFormats extends Record = NonNullable extends Record ? NonNullable : {}, OptionLocale = Options['locale'] extends string ? Options['locale'] : Locale>(options: Options, LegacyVueI18n?: any): (typeof options)['legacy'] extends true ? I18n : (typeof options)['legacy'] extends false ? I18n : I18n; export declare interface CustomBlock { locale: Locale; resource: LocaleMessages; } export declare type CustomBlocks = Array>; /** * Datetime Format Component * * @remarks * See the following items for property about details * * @VueI18nSee [FormattableProps](component#formattableprops) * @VueI18nSee [BaseFormatProps](component#baseformatprops) * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting) * * @VueI18nDanger * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts) * * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat) * * @VueI18nComponent */ export declare const DatetimeFormat: new () => { $props: VNodeProps & DatetimeFormatProps & BaseFormatProps; }; /** * DatetimeFormat Component Props * * @VueI18nComponent */ export declare type DatetimeFormatProps = FormattableProps; /** @VueI18nLegacy */ export declare type DateTimeFormatResult = string; export { DateTimeOptions } export declare type DefaultDateTimeFormatSchema> = IsEmptyObject extends true ? IntlDateTimeFormat : Schema; export declare type DefaultLocaleMessageSchema> = IsEmptyObject extends true ? LocaleMessage : Schema; export declare type DefaultNumberFormatSchema> = IsEmptyObject extends true ? IntlNumberFormat : Schema; /** * The type definition of datetime format * * @remarks * The typealias is used to strictly define the type of the Datetime format. * * The type defined by this can be used in the global scope. * * @example * ```ts * // type.d.ts (`.d.ts` file at your app) * import { DefineDateTimeFormat } from 'vue-i18n' * * declare module 'vue-i18n' { * export interface DefineDateTimeFormat { * short: { * hour: 'numeric' * timezone: string * } * } * } * ``` * * @VueI18nGeneral */ export declare interface DefineDateTimeFormat extends IntlDateTimeFormat { } /** * The type definition of Locale Message * * @remarks * The typealias is used to strictly define the type of the Locale message. * * The type defined by this can be used in the global scope. * * @example * ```ts * // type.d.ts (`.d.ts` file at your app) * import { DefineLocaleMessage } from 'vue-i18n' * * declare module 'vue-i18n' { * export interface DefineLocaleMessage { * title: string * menu: { * login: string * } * } * } * ``` * * @VueI18nGeneral */ export declare interface DefineLocaleMessage extends LocaleMessage { } /** * The type definition of number format * * @remarks * The typealias is used to strictly define the type of the Number format. * * The type defined by this can be used in the global scope. * * @example * ```ts * // type.d.ts (`.d.ts` file at your app) * import { DefineNumberFormat } from 'vue-i18n' * * declare module 'vue-i18n' { * export interface DefineNumberFormat { * currency: { * style: 'currency' * currencyDisplay: 'symbol' * currency: string * } * } * } * ``` * * @VueI18nGeneral */ export declare interface DefineNumberFormat extends IntlNumberFormat { } export declare type Disposer = () => void; /** * Exported global composer instance * * @remarks * This interface is the [global composer](general#global) that is provided interface that is injected into each component with `app.config.globalProperties`. * * @VueI18nGeneral */ export declare interface ExportedGlobalComposer { /** * Locale * * @remarks * This property is proxy-like property for `Composer#locale`. About details, see the [Composer#locale](composition#locale) */ locale: Locale; /** * Fallback locale * * @remarks * This property is proxy-like property for `Composer#fallbackLocale`. About details, see the [Composer#fallbackLocale](composition#fallbacklocale) */ fallbackLocale: FallbackLocale; /** * Available locales * * @remarks * This property is proxy-like property for `Composer#availableLocales`. About details, see the [Composer#availableLocales](composition#availablelocales) */ readonly availableLocales: Locale[]; } export { FallbackLocale } /** * Formattable Props * * @remarks * The props used in DatetimeFormat, or NumberFormat component * * @VueI18nComponent */ export declare interface FormattableProps extends BaseFormatProps { /** * @remarks * The value specified for the target component */ value: Value; /** * @remarks * The format to use in the target component. * * Specify the format key string or the format as defined by the Intl API in ECMA 402. */ format?: string | Format; } export declare interface Formatter { interpolate(message: string, values: any, path: string): Array | null; } /** * I18n instance * * @remarks * The instance required for installation as the Vue plugin * * @VueI18nGeneral */ export declare interface I18n = {}, DateTimeFormats extends Record = {}, NumberFormats extends Record = {}, OptionLocale = Locale, Legacy = boolean> { /** * Vue I18n API mode * * @remarks * If you specified `legacy: true` option in `createI18n`, return `legacy`, else `composition` * * @defaultValue `'legacy'` */ readonly mode: I18nMode; /** * The property accessible to the global Composer instance or VueI18n instance * * @remarks * If the [I18n#mode](general#mode) is `'legacy'`, then you can access to a global {@link VueI18n} instance, else then [I18n#mode](general#mode) is `'composition' `, you can access to the global {@link Composer} instance. * * An instance of this property is **global scope***. */ readonly global: Legacy extends true ? VueI18n : Legacy extends false ? Composer : unknown; /** * The property whether or not the Composition API is available * * @remarks * If you specified `allowComposition: true` option in Legacy API mode, return `true`, else `false`. else you use the Composition API mode, this property will always return `true`. */ readonly allowComposition: boolean; /** * Install entry point * * @param app - A target Vue app instance * @param options - An install options */ install(app: App, ...options: unknown[]): void; /** * Release global scope resource */ dispose(): void; } /** * I18n Additional Options * * @remarks * Specific options for {@link createI18n} * * @VueI18nGeneral */ export declare interface I18nAdditionalOptions { /** * Whether vue-i18n Legacy API mode use on your Vue App * * @remarks * The default is to use the Legacy API mode. If you want to use the Composition API mode, you need to set it to `false`. * * @VueI18nSee [Composition API](../guide/advanced/composition) * * @defaultValue `true` */ legacy?: boolean; /** * Whether to inject global properties & functions into for each component. * * @remarks * If set to `true`, then properties and methods prefixed with `$` are injected into Vue Component. * * @VueI18nSee [Implicit with injected properties and functions](../guide/advanced/composition#implicit-with-injected-properties-and-functions) * @VueI18nSee [ComponentCustomProperties](injection#componentcustomproperties) * * @defaultValue `true` */ globalInjection?: boolean; /** * Whether to allow the Composition API to be used in Legacy API mode. * * @remarks * If this option is enabled, you can use {@link useI18n} in Legacy API mode. This option is supported to support the migration from Legacy API mode to Composition API mode. * * @VueI18nWarning Note that the Composition API made available with this option doesn't work on SSR. * @VueI18nSee [Composition API](../guide/advanced/composition) * * @defaultValue `false` */ allowComposition?: boolean; } export declare const I18nD: new () => { $props: VNodeProps & DatetimeFormatProps & BaseFormatProps; }; /** * Injection key for {@link useI18n} * * @remarks * The global injection key for I18n instances with `useI18n`. this injection key is used in Web Components. * Specify the i18n instance created by {@link createI18n} together with `provide` function. * * @VueI18nGeneral */ export declare const I18nInjectionKey: InjectionKey | string; /** * Vue I18n API mode * * @VueI18nSee [I18n#mode](general#mode) * * @VueI18nGeneral */ export declare type I18nMode = 'legacy' | 'composition'; export declare const I18nN: new () => { $props: VNodeProps & NumberFormatProps & BaseFormatProps; }; /** * I18n Options for `createI18n` * * @remarks * `I18nOptions` is inherited {@link I18nAdditionalOptions}, {@link ComposerOptions} and {@link VueI18nOptions}, * so you can specify these options. * * @VueI18nGeneral */ export declare type I18nOptions | VueI18nOptions = ComposerOptions | VueI18nOptions> = I18nAdditionalOptions & Options; /** * Vue I18n plugin options * * @remarks * An options specified when installing Vue I18n as Vue plugin with using `app.use`. * * @VueI18nGeneral */ export declare interface I18nPluginOptions { /** * Whether to use the tag name `i18n` for Translation Component * * @remarks * This option is used for compatibility with Vue I18n v8.x. * * If you can't migrate right away, you can temporarily enable this option, and you can work Translation Component. * * @defaultValue `false` */ useI18nComponentName?: boolean; /** * Whether to globally install the components that is offered by Vue I18n * * @remarks * If this option is enabled, the components will be installed globally at `app.use` time. * * If you want to install manually in the `import` syntax, you can set it to `false` to install when needed. * * @defaultValue `true` */ globalInstall?: boolean; } /** * I18n Scope * * @VueI18nSee [ComposerAdditionalOptions#useScope](composition#usescope) * @VueI18nSee [useI18n](composition#usei18n) * * @VueI18nGeneral */ export declare type I18nScope = 'local' | 'parent' | 'global'; export declare const I18nT: new () => { $props: VNodeProps & TranslationProps; }; export { IntlDateTimeFormat } export { IntlDateTimeFormats } export { IntlFormatMatcher } export { IntlLocaleMatcher } export { IntlNumberFormat } export { IntlNumberFormats } export { IsEmptyObject } export { IsNever } export { LinkedModifiers } export { Locale } export { LocaleMessageDictionary } /** @VueI18nLegacy */ export declare type LocaleMessageObject = LocaleMessageDictionary; export { LocaleMessages } export { LocaleMessageType } export { LocaleMessageValue } export { MessageCompiler } export { MessageCompilerContext } export { MessageContext } export { MessageFunction } export { MessageFunctions } export { MessageResolver } /** @VueI18nComposition */ export declare type MissingHandler = (locale: Locale, key: Path, instance?: ComponentInternalInstance, type?: string) => string | void; export { NamedValue } /** * Number Format Component * * @remarks * See the following items for property about details * * @VueI18nSee [FormattableProps](component#formattableprops) * @VueI18nSee [BaseFormatProps](component#baseformatprops) * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting) * * @VueI18nDanger * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts) * * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat) * * @VueI18nComponent */ export declare const NumberFormat: new () => { $props: VNodeProps & NumberFormatProps & BaseFormatProps; }; /** * NumberFormat Component Props * * @VueI18nComponent */ export declare type NumberFormatProps = FormattableProps; /** @VueI18nLegacy */ export declare type NumberFormatResult = string; export { NumberOptions } export { Path } export { PathValue } export { PickupFormatPathKeys } export { PickupKeys } export { PickupPaths } export { PluralizationRule } export declare type PluralizationRulesMap = { [locale: string]: PluralizationRule; }; export { PostTranslationHandler } export { RemovedIndexResources } export { TranslateOptions } /** @VueI18nLegacy */ export declare type TranslateResult = string; /** * Translation Component * * @remarks * See the following items for property about details * * @VueI18nSee [TranslationProps](component#translationprops) * @VueI18nSee [BaseFormatProps](component#baseformatprops) * @VueI18nSee [Component Interpolation](../guide/advanced/component) * * @example * ```html *
* * * {{ $t('tos') }} * * *
* ``` * ```js * import { createApp } from 'vue' * import { createI18n } from 'vue-i18n' * * const messages = { * en: { * tos: 'Term of Service', * term: 'I accept xxx {0}.' * }, * ja: { * tos: '利用規約', * term: '私は xxx の{0}に同意します。' * } * } * * const i18n = createI18n({ * locale: 'en', * messages * }) * * const app = createApp({ * data: { * url: '/term' * } * }).use(i18n).mount('#app') * ``` * * @VueI18nComponent */ export declare const Translation: new () => { $props: VNodeProps & TranslationProps; }; /** * Translation Directive (`v-t`) * * @remarks * Update the element `textContent` that localized with locale messages. * * You can use string syntax or object syntax. * * String syntax can be specified as a keypath of locale messages. * * If you can be used object syntax, you need to specify as the object key the following params * * ``` * - path: required, key of locale messages * - locale: optional, locale * - args: optional, for list or named formatting * ``` * * @example * ```html * *

* * *

* * *

* * *

* ``` * * @VueI18nDirective */ export declare type TranslationDirective = ObjectDirective; /** * Translation Component Props * * @VueI18nComponent */ export declare interface TranslationProps extends BaseFormatProps { /** * @remarks * The locale message key can be specified prop */ keypath: string; /** * @remarks * The Plural Choosing the message number prop */ plural?: number | string; } export declare function useI18n(options?: Options): Composer, NonNullable, NonNullable, Options['locale'] extends unknown ? string : Options['locale']>; /** * Use Composition API for Vue I18n * * @param options - An options, see {@link UseI18nOptions} * * @typeParam Schema - The i18n resources (messages, datetimeFormats, numberFormats) schema, default {@link LocaleMessage} * @typeParam Locales - The locales of i18n resource schema, default `en-US` * * @returns {@link Composer} instance * * @remarks * This function is mainly used by `setup`. * * If options are specified, Composer instance is created for each component and you can be localized on the component. * * If options are not specified, you can be localized using the global Composer. * * @example * case: Component resource base localization * ```html * * * * ``` * * @VueI18nComposition */ export declare function useI18n, LocaleParams> = UseI18nOptions, LocaleParams>>(options?: Options): Composer, NonNullable, NonNullable, Options['locale'] extends unknown ? string : Options['locale']>; /** * I18n Options for `useI18n` * * @remarks * `UseI18nOptions` is inherited {@link ComposerAdditionalOptions} and {@link ComposerOptions}, so you can specify these options. * * @VueI18nSee [useI18n](composition#usei18n) * * @VueI18nComposition */ export declare type UseI18nOptions = ComposerOptions> = ComposerAdditionalOptions & Options; /** * Vue I18n Version * * @remarks * Semver format. Same format as the package.json `version` field. * * @VueI18nGeneral */ export declare const VERSION: string; export declare function vTDirective(i18n: I18n): TranslationDirective; export declare type VTDirectiveValue = { path: string; locale?: Locale; args?: NamedValue; choice?: number; plural?: number; }; /** * VueI18n legacy interfaces * * @remarks * This interface is compatible with interface of `VueI18n` class (offered with Vue I18n v8.x). * * @VueI18nLegacy */ export declare interface VueI18n = {}, DateTimeFormats extends Record = {}, NumberFormats extends Record = {}, OptionLocale = Locale, ResourceLocales = PickupLocales> | PickupLocales> | PickupLocales>, Locales = OptionLocale extends string ? [ResourceLocales] extends [never] ? Locale : ResourceLocales : OptionLocale | ResourceLocales, Composition extends Composer = Composer> { /** * @remarks * Instance ID. */ id: number; /** * @remarks * The current locale this VueI18n instance is using. * * If the locale contains a territory and a dialect, this locale contains an implicit fallback. * * @VueI18nSee [Scope and Locale Changing](../guide/essentials/scope) */ locale: Locales; /** * @remarks * The current fallback locales this VueI18n instance is using. * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) */ fallbackLocale: FallbackLocales; /** * @remarks * The list of available locales in `messages` in lexical order. */ readonly availableLocales: Composition['availableLocales']; /** * @remarks * The locale messages of localization. * * @VueI18nSee [Getting Started](../guide/essentials/started) */ readonly messages: { [K in keyof Messages]: Messages[K]; }; /** * @remarks * The datetime formats of localization. * * @VueI18nSee [Datetime Formatting](../guide/essentials/datetime) */ readonly datetimeFormats: { [K in keyof DateTimeFormats]: DateTimeFormats[K]; }; /** * @remarks * The number formats of localization. * * @VueI18nSee [Number Formatting](../guide/essentials/number) */ readonly numberFormats: { [K in keyof NumberFormats]: NumberFormats[K]; }; /** * @remarks * Custom Modifiers for linked messages. * * @VueI18nSee [Custom Modifiers](../guide/essentials/syntax#custom-modifiers) */ readonly modifiers: Composition['modifiers']; /** * @remarks * The formatter that implemented with Formatter interface. * * @deprecated See the [here](../guide/migration/breaking#remove-custom-formatter) */ formatter: Formatter; /** * @remarks * A handler for localization missing. */ missing: MissingHandler | null; /** * @remarks * A handler for post processing of translation. */ postTranslation: PostTranslationHandler | null; /** * @remarks * Whether suppress warnings outputted when localization fails. * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) */ silentTranslationWarn: Composition['missingWarn']; /** * @remarks * Whether suppress fallback warnings when localization fails. */ silentFallbackWarn: Composition['fallbackWarn']; /** * @remarks * Whether suppress warnings when falling back to either `fallbackLocale` or root. * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) */ formatFallbackMessages: Composition['fallbackFormat']; /** * @remarks * Whether synchronize the root level locale to the component localization locale. * * @VueI18nSee [Local Scope](../guide/essentials/scope#local-scope-2) */ sync: Composition['inheritLocale']; /** * @remarks * Whether to allow the use locale messages of HTML formatting. * * If you set `warn` or` error`, will check the locale messages on the VueI18n instance. * * If you are specified `warn`, a warning will be output at console. * * If you are specified `error` will occurred an Error. * * @VueI18nSee [HTML Message](../guide/essentials/syntax#html-message) * @VueI18nSee [Change `warnHtmlInMessage` option default value](../guide/migration/breaking#change-warnhtmlinmessage-option-default-value) */ warnHtmlInMessage: WarnHtmlInMessageLevel; /** * @remarks * Whether interpolation parameters are escaped before the message is translated. * * @VueI18nSee [HTML Message](../guide/essentials/syntax#html-message) */ escapeParameterHtml: Composition['escapeParameter']; /** * @remarks * Whether `v-t` directive's element should preserve `textContent` after directive is unbinded. * * @VueI18nSee [Custom Directive](../guide/advanced/directive) * @VueI18nSee [Remove preserveDirectiveContent option](../guide/migration/breaking#remove-preservedirectivecontent-option) * * @deprecated The `v-t` directive for Vue 3 now preserves the default content. Therefore, this option and its properties have been removed from the VueI18n instance. */ preserveDirectiveContent: boolean; /** * A set of rules for word pluralization * * @VueI18nSee [Custom Pluralization](../guide/essentials/pluralization#custom-pluralization) */ pluralizationRules: Composition['pluralRules']; /** * Locale message translation * * @remarks * About details functions, See the {@link VueI18nTranslation} */ t: VueI18nTranslation>; /** * Resolve locale message translation * * @remarks * About details functions, See the {@link VueI18nResolveLocaleMessageTranslation} */ rt: VueI18nResolveLocaleMessageTranslation; /** * Locale message pluralization * * @remarks * About details functions, See the {@link VueI18nTranslationChoice} */ tc: VueI18nTranslationChoice>; /** * Translation locale message exist * * @remarks * whether do exist locale message on VueI18n instance [messages](legacy#messages). * * If you specified `locale`, check the locale messages of `locale`. * * @param key - A target locale message key * @param locale - A target locale * * @returns If found locale message, `true`, else `false` */ te = PickupKeys>(key: Str | Key, locale?: Locales): boolean; /** * Locale messages getter * * @remarks * If [i18n component options](injection#i18n) is specified, it’s get in preferentially local scope locale messages than global scope locale messages. * * If [i18n component options](injection#i18n) isn't specified, it’s get with global scope locale messages. * * Based on the current `locale`, locale messages will be returned from Composer instance messages. * * If you change the `locale`, the locale messages returned will also correspond to the locale. * * If there are no locale messages for the given `key` in the composer instance messages, they will be returned with [fallbacking](../guide/essentials/fallback). * * @VueI18nWarning * You need to use `rt` for the locale message returned by `tm`. see the [rt](legacy#rt-message) details. * * @example * template: * ```html *
* *
* ``` * * ```js * import { createI18n } from 'vue-i18n' * * const i18n = createI18n({ * messages: { * en: { * contents: [ * { * title: 'Title1', * // ... * paragraphs: [ * // ... * ] * } * ] * } * } * // ... * }) * ``` * @param key - A target locale message key * * @return Locale messages */ tm: Composition['tm']; /** * Get locale message * * @remarks * get locale message from VueI18n instance [messages](legacy#messages). * * @param locale - A target locale * * @returns Locale messages */ getLocaleMessage: Composition['getLocaleMessage']; /** * Set locale message * * @remarks * Set locale message to VueI18n instance [messages](legacy#messages). * * @param locale - A target locale * @param message - A message */ setLocaleMessage: Composition['setLocaleMessage']; /** * Merge locale message * * @remarks * Merge locale message to VueI18n instance [messages](legacy#messages). * * @param locale - A target locale * @param message - A message */ mergeLocaleMessage: Composition['mergeLocaleMessage']; /** * Datetime formatting * * @remarks * About details functions, See the {@link VueI18nDateTimeFormatting} */ d: VueI18nDateTimeFormatting>; /** * Get datetime format * * @remarks * get datetime format from VueI18n instance [datetimeFormats](legacy#datetimeformats). * * @param locale - A target locale * * @returns Datetime format */ getDateTimeFormat: Composition['getDateTimeFormat']; /** * Set datetime format * * @remarks * Set datetime format to VueI18n instance [datetimeFormats](legacy#datetimeformats). * * @param locale - A target locale * @param format - A target datetime format */ setDateTimeFormat: Composition['setDateTimeFormat']; /** * Merge datetime format * * @remarks * Merge datetime format to VueI18n instance [datetimeFormats](legacy#datetimeformats). * * @param locale - A target locale * @param format - A target datetime format */ mergeDateTimeFormat: Composition['mergeDateTimeFormat']; /** * Number Formatting * * @remarks * About details functions, See the {@link VueI18nNumberFormatting} */ n: VueI18nNumberFormatting>; /** * Get number format * * @remarks * get number format from VueI18n instance [numberFormats](legacy#numberFormats). * * @param locale - A target locale * * @returns Number format */ getNumberFormat: Composition['getNumberFormat']; /** * Set number format * * @remarks * Set number format to VueI18n instance [numberFormats](legacy#numberFormats). * * @param locale - A target locale * @param format - A target number format */ setNumberFormat: Composition['setNumberFormat']; /** * Merge number format * * @remarks * Merge number format to VueI18n instance [numberFormats](legacy#numberFormats). * * @param locale - A target locale * @param format - A target number format */ mergeNumberFormat: Composition['mergeNumberFormat']; /** * Get choice index * * @remarks * Get pluralization index for current pluralizing number and a given amount of choices. * * @deprecated Use `pluralizationRules` option instead of `getChoiceIndex`. */ getChoiceIndex: (choice: Choice, choicesLength: number) => number; } /** * Datetime formatting functions for VueI18n legacy interfaces * * @remarks * This is the interface for {@link VueI18n} * * @VueI18nLegacy */ export declare interface VueI18nDateTimeFormatting = {}, Locales = 'en-US', DefinedDateTimeFormat extends RemovedIndexResources = RemovedIndexResources, C = IsEmptyObject extends false ? PickupFormatPathKeys<{ [K in keyof DefinedDateTimeFormat]: DefinedDateTimeFormat[K]; }> : never, M = IsEmptyObject extends false ? PickupFormatKeys : never, ResourceKeys extends C | M = IsNever extends false ? IsNever extends false ? C | M : C : IsNever extends false ? M : never> { /** * Datetime formatting * * @remarks * If this is used in a reactive context, it will re-evaluate once the locale changes. * * If [i18n component options](injection#i18n) is specified, it’s formatted in preferentially local scope datetime formats than global scope locale messages. * * If [i18n component options](injection#i18n) isn't specified, it’s formatted with global scope datetime formats. * * @param value - A value, timestamp number or `Date` instance * * @returns Formatted value * * @VueI18nSee [Datetime formatting](../guide/essentials/datetime) */ (value: number | Date): DateTimeFormatResult; /** * Datetime formatting * * @remarks * Overloaded `d`. About details, see the [call signature](legacy#value-number-date-datetimeformatresult) details. * * @param value - A value, timestamp number or `Date` instance * @param key - A key of datetime formats * * @returns Formatted value */ (value: Value, key: Key | ResourceKeys): DateTimeFormatResult; /** * Datetime formatting * * @remarks * Overloaded `d`. About details, see the [call signature](legacy#value-number-date-datetimeformatresult) details. * * @param value - A value, timestamp number or `Date` instance * @param key - A key of datetime formats * @param locale - A locale, it will be used over than global scope or local scope. * * @returns Formatted value */ (value: Value, key: Key | ResourceKeys, locale: Locales): DateTimeFormatResult; /** * Datetime formatting * * @remarks * Overloaded `d`. About details, see the [call signature](legacy#value-number-date-datetimeformatresult) details. * * @param value - A value, timestamp number or `Date` instance * @param args - An argument values * * @returns Formatted value */ (value: number | Date, args: { [key: string]: string | boolean | number; }): DateTimeFormatResult; } export declare type VueI18nExtender = (vueI18n: VueI18n) => Disposer | undefined; /** * Number formatting functions for VueI18n legacy interfaces * * @remarks * This is the interface for {@link VueI18n} * * @VueI18nLegacy */ export declare interface VueI18nNumberFormatting = {}, Locales = 'en-US', DefinedNumberFormat extends RemovedIndexResources = RemovedIndexResources, C = IsEmptyObject extends false ? PickupFormatPathKeys<{ [K in keyof DefinedNumberFormat]: DefinedNumberFormat[K]; }> : never, M = IsEmptyObject extends false ? PickupFormatKeys : never, ResourceKeys extends C | M = IsNever extends false ? IsNever extends false ? C | M : C : IsNever extends false ? M : never> { /** * Number formatting * * @remarks * If this is used in a reactive context, it will re-evaluate once the locale changes. * * If [i18n component options](injection#i18n) is specified, it’s formatted in preferentially local scope number formats than global scope locale messages. * * If [i18n component options](injection#i18n) isn't specified, it’s formatted with global scope number formats. * * @param value - A number value * * @returns Formatted value * * @VueI18nSee [Number formatting](../guide/essentials/number) */ (value: number): NumberFormatResult; /** * Number formatting * * @remarks * Overloaded `n`. About details, see the [call signature](legacy#value-number-numberformatresult) details. * * @param value - A number value * @param key - A key of number formats * * @returns Formatted value */ (value: number, key: Key | ResourceKeys): NumberFormatResult; /** * Number formatting * * @remarks * Overloaded `n`. About details, see the [call signature](legacy#value-number-numberformatresult) details. * * @param value - A number value * @param key - A key of number formats * @param locale - A locale, it will be used over than global scope or local scope. * * @returns Formatted value */ (value: number, key: Key | ResourceKeys, locale: Locales): NumberFormatResult; /** * Number formatting * * @remarks * Overloaded `n`. About details, see the [call signature](legacy#value-number-numberformatresult) details. * * @param value - A number value * @param args - An argument values * * @returns Formatted value */ (value: number, args: { [key: string]: string | boolean | number; }): NumberFormatResult; } /** * VueI18n Options * * @remarks * This option is compatible with `VueI18n` class constructor options (offered with Vue I18n v8.x) * * @VueI18nLegacy */ export declare interface VueI18nOptions = ComposerOptions> { /** * @remarks * The locale of localization. * * If the locale contains a territory and a dialect, this locale contains an implicit fallback. * * @VueI18nSee [Scope and Locale Changing](../guide/essentials/scope) * * @defaultValue `'en-US'` */ locale?: Options['locale']; /** * @remarks * The locale of fallback localization. * * For more complex fallback definitions see fallback. * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) * * @defaultValue The default `'en-US'` for the `locale` if it's not specified, or it's `locale` value */ fallbackLocale?: Options['fallbackLocale']; /** * @remarks * The locale messages of localization. * * @VueI18nSee [Getting Started](../guide/essentials/started) * * @defaultValue `{}` */ messages?: Options['messages']; /** * @remarks * Allow use flat json messages or not * * @defaultValue `false` */ flatJson?: Options['flatJson']; /** * @remarks * The datetime formats of localization. * * @VueI18nSee [Datetime Formatting](../guide/essentials/datetime) * * @defaultValue `{}` */ datetimeFormats?: Options['datetimeFormats']; /** * @remarks * The number formats of localization. * * @VueI18nSee [Number Formatting](../guide/essentials/number) * * @defaultValue `{}` */ numberFormats?: Options['numberFormats']; /** * @remarks * The list of available locales in messages in lexical order. * * @defaultValue `[]` */ availableLocales?: Locale[]; /** * @remarks * Custom Modifiers for linked messages. * * @VueI18nSee [Custom Modifiers](../guide/essentials/syntax#custom-modifiers) */ modifiers?: Options['modifiers']; /** * @remarks * The formatter that implemented with Formatter interface. * * @deprecated See the [here](../guide/migration/breaking#remove-custom-formatter) */ formatter?: Formatter; /** * @remarks * A handler for localization missing. * * The handler gets called with the localization target locale, localization path key, the Vue instance and values. * * If missing handler is assigned, and occurred localization missing, it's not warned. * * @defaultValue `null` */ missing?: Options['missing']; /** * @remarks * In the component localization, whether to fall back to root level (global scope) localization when localization fails. * * If `false`, it's not fallback to root. * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) * * @defaultValue `true` */ fallbackRoot?: Options['fallbackRoot']; /** * @remarks * Whether suppress warnings outputted when localization fails. * * If `true`, suppress localization fail warnings. * * If you use regular expression, you can suppress localization fail warnings that it match with translation key (e.g. `t`). * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) * * @defaultValue `false` */ silentTranslationWarn?: Options['missingWarn']; /** * @remarks * Whether do template interpolation on translation keys when your language lacks a translation for a key. * * If `true`, skip writing templates for your "base" language; the keys are your templates. * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) * * @defaultValue `false` */ silentFallbackWarn?: Options['fallbackWarn']; /** * @remarks * Whether suppress warnings when falling back to either `fallbackLocale` or root. * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) * * @defaultValue `false` */ formatFallbackMessages?: Options['fallbackFormat']; /** * @remarks * Whether `v-t` directive's element should preserve `textContent` after directive is unbinded. * * @VueI18nSee [Custom Directive](../guide/advanced/directive) * @VueI18nSee [Remove `preserveDirectiveContent` option](../guide/migration/breaking#remove-preservedirectivecontent-option) * * @defaultValue `false` * * @deprecated The `v-t` directive for Vue 3 now preserves the default content. Therefore, this option and its properties have been removed from the VueI18n instance. */ preserveDirectiveContent?: boolean; /** * @remarks * Whether to allow the use locale messages of HTML formatting. * * See the warnHtmlInMessage property. * * @VueI18nSee [HTML Message](../guide/essentials/syntax#html-message) * @VueI18nSee [Change `warnHtmlInMessage` option default value](../guide/migration/breaking#change-warnhtmlinmessage-option-default-value) * * @defaultValue `'off'` */ warnHtmlInMessage?: WarnHtmlInMessageLevel; /** * @remarks * If `escapeParameterHtml` is configured as true then interpolation parameters are escaped before the message is translated. * * This is useful when translation output is used in `v-html` and the translation resource contains html markup (e.g. around a user provided value). * * This usage pattern mostly occurs when passing precomputed text strings into UI components. * * The escape process involves replacing the following symbols with their respective HTML character entities: `<`, `>`, `"`, `'`. * * Setting `escapeParameterHtml` as true should not break existing functionality but provides a safeguard against a subtle type of XSS attack vectors. * * @VueI18nSee [HTML Message](../guide/essentials/syntax#html-message) * * @defaultValue `false` */ escapeParameterHtml?: Options['escapeParameter']; /** * @remarks * The shared locale messages of localization for components. More detail see Component based localization. * * @VueI18nSee [Shared locale messages for components](../guide/essentials/local#shared-locale-messages-for-components) * * @defaultValue `undefined` */ sharedMessages?: LocaleMessages; /** * @remarks * A set of rules for word pluralization * * @VueI18nSee [Custom Pluralization](../guide/essentials/pluralization#custom-pluralization) * * @defaultValue `{}` */ pluralizationRules?: Options['pluralRules']; /** * @remarks * A handler for post processing of translation. The handler gets after being called with the `$t`, `t`, `$tc`, and `tc`. * * This handler is useful if you want to filter on translated text such as space trimming. * * @defaultValue `null` */ postTranslation?: Options['postTranslation']; /** * @remarks * Whether synchronize the root level locale to the component localization locale. * * If `false`, regardless of the root level locale, localize for each component locale. * * @VueI18nSee [Local Scope](../guide/essentials/scope#local-scope-2) * * @defaultValue `true` */ sync?: boolean; /** * @remarks * A message resolver to resolve [`messages`](legacy#messages). * * If not specified, the vue-i18n internal message resolver will be used by default. * * You need to implement a message resolver yourself that supports the following requirements: * * - Resolve the message using the locale message of [`locale`](legacy#locale) passed as the first argument of the message resolver, and the path passed as the second argument. * * - If the message could not be resolved, you need to return `null`. * * - If you will be returned `null`, the message resolver will also be called on fallback if [`fallbackLocale`](legacy#fallbacklocale-2) is enabled, so the message will need to be resolved as well. * * The message resolver is called indirectly by the following APIs: * * - [`t`](legacy#t-key) * * - [`tc`](legacy#tc-key) * * - [`te`](legacy#te-key-locale) * * - [`tm`](legacy#tm-key) * * - [Translation component](component#translation) * * @example * Here is an example of how to set it up using your `createI18n`: * ```js * import { createI18n } from 'vue-i18n' * * // your message resolver * function messageResolver(obj, path) { * // simple message resolving! * const msg = obj[path] * return msg != null ? msg : null * } * * // call with I18n option * const i18n = createI18n({ * locale: 'ja', * messageResolver, // set your message resolver * messages: { * en: { ... }, * ja: { ... } * } * }) * * // the below your something to do ... * // ... * ``` * * @VueI18nTip * :new: v9.2+ * * @VueI18nWarning * If you use the message resolver, the [`flatJson`](legacy#flatjson) setting will be ignored. That is, you need to resolve the flat JSON by yourself. * * @VueI18nSee [Fallbacking](../guide/essentials/fallback) * * @defaultValue `undefined` */ messageResolver?: MessageResolver; } /** * Resolve locale message translation functions for VueI18n legacy interfaces * * @remarks * This is the interface for {@link VueI18n}. This interface is an alias of {@link ComposerResolveLocaleMessageTranslation}. * * @VueI18nLegacy */ export declare type VueI18nResolveLocaleMessageTranslation = ComposerResolveLocaleMessageTranslation; /** * Locale message translation functions for VueI18n legacy interfaces * * @remarks * This is the interface for {@link VueI18n} * * @VueI18nLegacy */ export declare interface VueI18nTranslation = {}, Locales = 'en-US', DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, C = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K]; }> : never, M = IsEmptyObject extends false ? PickupKeys : never, ResourceKeys extends C | M = IsNever extends false ? IsNever extends false ? C | M : C : IsNever extends false ? M : never> { /** * Locale message translation. * * @remarks * If this is used in a reactive context, it will re-evaluate once the locale changes. * * If [i18n component options](injection#i18n) is specified, it’s translated in preferentially local scope locale messages than global scope locale messages. * * If [i18n component options](injection#i18n) isn't specified, it’s translated with global scope locale messages. * * @param key - A target locale message key * * @returns Translated message * * @VueI18nSee [Scope and Locale Changing](../guide/essentials/scope) */ (key: Key | ResourceKeys): TranslateResult; /** * Locale message translation. * * @remarks * Overloaded `t`. About details, see the [call signature](legacy#key-key-resourcekeys-translateresult) details. * * @param key - A target locale message key * @param locale - A locale, it will be used over than global scope or local scope. * * @returns Translated message */ (key: Key | ResourceKeys, locale: Locales | Locale): TranslateResult; /** * Locale message translation. * * @remarks * Overloaded `t`. About details, see the [call signature](legacy#key-key-resourcekeys-translateresult) details. * * @param key - A target locale message key * @param locale - A locale, it will be used over than global scope or local scope. * @param list - A values of list interpolation * * @returns Translated message * * @VueI18nSee [List interpolation](../guide/essentials/syntax#list-interpolation) */ (key: Key | ResourceKeys, locale: Locales | Locale, list: unknown[]): TranslateResult; /** * Locale message translation. * * @remarks * Overloaded `t`. About details, see the [call signature](legacy#key-key-resourcekeys-translateresult) details. * * @param key - A target locale message key * @param locale - A locale, it will be used over than global scope or local scope. * @param named - A values of named interpolation * * @returns Translated message * * @VueI18nSee [Named interpolation](../guide/essentials/syntax#named-interpolation) */ (key: Key | ResourceKeys, locale: Locales | Locale, named: Record): TranslateResult; /** * Locale message translation. * * @remarks * Overloaded `t`. About details, see the [call signature](legacy#key-key-resourcekeys-translateresult) details. * * @param key - A target locale message key * @param list - A values of list interpolation * * @returns Translated message * * @VueI18nSee [List interpolation](../guide/essentials/syntax#list-interpolation) */ (key: Key | ResourceKeys, list: unknown[]): TranslateResult; /** * Locale message translation. * * @remarks * Overloaded `t`. About details, see the [call signature](legacy#key-key-resourcekeys-translateresult) details. * * @param key - A target locale message key * @param named - A values of named interpolation * * @returns Translated message * * @VueI18nSee [Named interpolation](../guide/essentials/syntax#named-interpolation) */ (key: Key | ResourceKeys, named: Record): TranslateResult; } /** * Locale message pluralization functions for VueI18n legacy interfaces * * @remarks * This is the interface for {@link VueI18n} * * @VueI18nLegacy */ export declare interface VueI18nTranslationChoice = {}, Locales = 'en-US', DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, C = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K]; }> : never, M = IsEmptyObject extends false ? PickupKeys : never, ResourceKeys extends C | M = IsNever extends false ? IsNever extends false ? C | M : C : IsNever extends false ? M : never> { /** * Locale message pluralization * * @remarks * If this is used in a reactive context, it will re-evaluate once the locale changes. * * If [i18n component options](injection#i18n) is specified, it’s pluraled in preferentially local scope locale messages than global scope locale messages. * * If [i18n component options](injection#i18n) isn't specified, it’s pluraled with global scope locale messages. * * The plural choice number is handled with default `1`. * * @param key - A target locale message key * * @returns Pluraled message * * @VueI18nSee [Pluralization](../guide/essentials/pluralization) */ (key: Key | ResourceKeys): TranslateResult; /** * Locale message pluralization * * @remarks * Overloaded `tc`. About details, see the [call signature](legacy#key-key-resourcekeys-translateresult-2) details. * * @param key - A target locale message key * @param locale - A locale, it will be used over than global scope or local scope. * * @returns Pluraled message */ (key: Key | ResourceKeys, locale: Locales | Locale): TranslateResult; /** * Locale message pluralization * * @remarks * Overloaded `tc`. About details, see the [call signature](legacy#key-key-resourcekeys-translateresult-2) details. * * @param key - A target locale message key * @param list - A values of list interpolation * * @returns Pluraled message */ (key: Key | ResourceKeys, list: unknown[]): TranslateResult; /** * Locale message pluralization * * @remarks * Overloaded `tc`. About details, see the [call signature](legacy#key-key-resourcekeys-translateresult-2) details. * * @param key - A target locale message key * @param named - A values of named interpolation * * @returns Pluraled message */ (key: Key | ResourceKeys, named: Record): TranslateResult; /** * Locale message pluralization * * @remarks * Overloaded `tc`. About details, see the [call signature](legacy#key-key-resourcekeys-translateresult-2) details. * * @param key - A target locale message key * @param choice - Which plural string to get. 1 returns the first one. * * @returns Pluraled message */ (key: Key | ResourceKeys, choice: number): TranslateResult; /** * Locale message pluralization * * @remarks * Overloaded `tc`. About details, see the [call signature](legacy#key-key-resourcekeys-translateresult-2) details. * * @param key - A target locale message key * @param choice - Which plural string to get. 1 returns the first one. * @param locale - A locale, it will be used over than global scope or local scope. * * @returns Pluraled message */ (key: Key | ResourceKeys, choice: number, locale: Locales | Locale): TranslateResult; /** * Locale message pluralization * * @remarks * Overloaded `tc`. About details, see the [call signature](legacy#key-key-resourcekeys-translateresult-2) details. * * @param key - A target locale message key * @param choice - Which plural string to get. 1 returns the first one. * @param list - A values of list interpolation * * @returns Pluraled message */ (key: Key | ResourceKeys, choice: number, list: unknown[]): TranslateResult; /** * Locale message pluralization * * @remarks * Overloaded `tc`. About details, see the [call signature](legacy#key-key-resourcekeys-translateresult-2) details. * * @param key - A target locale message key * @param choice - Which plural string to get. 1 returns the first one. * @param named - A values of named interpolation * * @returns Pluraled message */ (key: Key | ResourceKeys, choice: number, named: Record): TranslateResult; } /** @VueI18nComposition */ export declare type VueMessageType = string | ResourceNode | VNode; export declare type WarnHtmlInMessageLevel = 'off' | 'warn' | 'error'; export { } declare module 'vue' { /** * Component Custom Options for Vue I18n * * @VueI18nInjection */ export interface ComponentCustomOptions { /** * VueI18n options * * @remarks * See the {@link VueI18nOptions} */ i18n?: VueI18nOptions /** * For custom blocks options * @internal */ __i18n?: CustomBlocks /** * For devtools * @internal */ __INTLIFY_META__?: string } /** * Component Custom Properties for Vue I18n * * @VueI18nInjection */ export interface ComponentCustomProperties { /** * Exported Global Composer instance, or global VueI18n instance. * * @remarks * You can get the {@link ExportedGlobalComposer | exported composer instance} which are exported from global {@link Composer | composer instance} created with {@link createI18n}, or global {@link VueI18n | VueI18n instance}. * You can get the exported composer instance in {@link I18nMode | Composition API mode}, or the Vuei18n instance in {@link I18nMode | Legacy API mode}, which is the instance you can refer to with this property. * The locales, locale messages, and other resources managed by the instance referenced by this property are valid as global scope. * If the `i18n` component custom option is not specified, it's the same as the VueI18n instance that can be referenced by the i18n instance {@link I18n.global | global} property. */ $i18n: VueI18n | ExportedGlobalComposer /** * Locale message translation * * @remarks * If this is used in a reactive context, it will re-evaluate once the locale changes. * * In {@link I18nMode | Legacy API mode}, the input / output is the same as for VueI18n instance. About that details, see {@link VueI18n#t | `VueI18n#t`}. * * In {@link I18nMode | Composition API mode}, the `$t` is injected by `app.config.globalProperties`. * the input / output is the same as for Composer, and it work on **global scope**. About that details, see {@link Composer#t | `Composer#t` }. * * @param key - A target locale message key * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path ): TranslateResult /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * @param locale - A locale, override locale that global scope or local scope * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path ): TranslateResult /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * @param locale - A locale, override locale that global scope or local scope * @param list - A values of list interpolation * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, locale: Locale, list: unknown[] ): TranslateResult /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * @param locale - A locale, override locale that global scope or local scope * @param named - A values of named interpolation * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, locale: Locale, named: object ): TranslateResult /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * @param list - A values of list interpolation * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, list: unknown[] ): TranslateResult /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * @param named - A values of named interpolation * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, named: Record ): TranslateResult /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path ): string /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * @param plural - A choice number of plural * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, plural: number ): string /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * @param plural - Which plural string to get. 1 returns the first one. * @param options - An options, see the {@link TranslateOptions} * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, plural: number, options: TranslateOptions ): string /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * @param defaultMsg - A default message to return if no translation was found * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, defaultMsg: string ): string /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * @param defaultMsg - A default message to return if no translation was found * @param options - An options, see the {@link TranslateOptions} * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, defaultMsg: string, options: TranslateOptions ): string /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * @param list - A values of list interpolation * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, list: unknown[] ): string /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * @param list - A values of list interpolation * @param plural - A choice number of plural * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, list: unknown[], plural: number ): string /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * @param list - A values of list interpolation * @param defaultMsg - A default message to return if no translation was found * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, list: unknown[], defaultMsg: string ): string /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * @param list - A values of list interpolation * @param options - An options, see the {@link TranslateOptions} * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, list: unknown[], options: TranslateOptions ): string /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * @param named - A values of named interpolation * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, named: NamedValue ): string /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * @param named - A values of named interpolation * @param plural - A choice number of plural * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, named: NamedValue, plural: number ): string /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * @param named - A values of named interpolation * @param defaultMsg - A default message to return if no translation was found * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, named: NamedValue, defaultMsg: string ): string /** * Locale message translation * * @remarks * Overloaded `$t`. About details, see the {@link $t} remarks. * * @param key - A target locale message key * @param named - A values of named interpolation * @param options - An options, see the {@link TranslateOptions} * * @returns translation message */ $t< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, named: NamedValue, options: TranslateOptions ): string /** * Resolve locale message translation * * @remarks * If this is used in a reactive context, it will re-evaluate once the locale changes. * * In {@link I18nMode | Legacy API mode}, the input / output is the same as for VueI18n instance. About that details, see {@link VueI18n#rt | `VueI18n#rt`}. * * In {@link I18nMode | Composition API mode}, the `$rt` is injected by `app.config.globalProperties`. * the input / output is the same as for Composer, and it work on **global scope**. About that details, see {@link Composer#rt | `Composer#rt` }. * * @param message - A target locale message to be resolved. You will need to specify the locale message returned by `$tm`. * * @returns translated message */ $rt(message: MessageFunction | VueMessageType): string /** * Resolve locale message translation for plurals * * @remarks * Overloaded `$rt`. About details, see the {@link $rt} remarks. * * @param message - A target locale message to be resolved. You will need to specify the locale message returned by `$tm`. * @param plural - Which plural string to get. 1 returns the first one. * @param options - Additional {@link TranslateOptions | options} for translation * * @returns Translated message */ $rt( message: MessageFunction | VueMessageType, plural: number, options?: TranslateOptions ): string /** * Resolve locale message translation for list interpolations * * @remarks * Overloaded `$rt`. About details, see the {@link $rt} remarks. * * @param message - A target locale message to be resolved. You will need to specify the locale message returned by `$tm`. * @param list - A values of list interpolation. * @param options - Additional {@link TranslateOptions | options} for translation * * @returns Translated message */ $rt( message: MessageFunction | VueMessageType, list: unknown[], options?: TranslateOptions ): string /** * Resolve locale message translation for named interpolations * * @remarks * Overloaded `$rt`. About details, see the {@link $rt} remarks. * * @param message - A target locale message to be resolved. You will need to specify the locale message returned by `$tm`. * @param named - A values of named interpolation. * @param options - Additional {@link TranslateOptions | options} for translation * * @returns Translated message */ $rt( message: MessageFunction | VueMessageType, named: NamedValue, options?: TranslateOptions ): string /** * Locale message pluralization * * @remarks * If this is used in a reactive context, it will re-evaluate once the locale changes. * * The input / output is the same as for VueI18n instance. About that details, see {@link VueI18n#tc | `VueI18n#tc` }. * The value of plural is handled with default `1`. * Supported for Legacy API mode only. * * @param key - A target locale message key * * @returns translation message that is pluraled */ $tc< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path ): TranslateResult /** * Locale message pluralization * * @remarks * Overloaded `$tc`. About details, see the {@link $tc} remarks. * Supported for Legacy API mode only. * * @param key - A target locale message key * @param locale - A locale, override locale that global scope or local scope * * @returns translation message that is pluraled */ $tc< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, locale: Locale ): TranslateResult /** * Locale message pluralization * * @remarks * Overloaded `$tc`. About details, see the {@link $tc} remarks. * Supported for Legacy API mode only. * * @param key - A target locale message key * @param list - A values of list interpolation * * @returns translation message that is pluraled */ $tc< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, list: unknown[] ): TranslateResult /** * Locale message pluralization * Supported for Legacy API mode only. * * @remarks * Overloaded `$tc`. About details, see the {@link $tc} remarks. * Supported for Legacy API mode only. * * @param key - A target locale message key * @param named - A values of named interpolation * * @returns translation message that is pluraled */ $tc< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, named: Record ): TranslateResult /** * Locale message pluralization * Supported for Legacy API mode only. * * @remarks * Overloaded `$tc`. About details, see the {@link $tc} remarks. * Supported for Legacy API mode only. * * @param key - A target locale message key * @param choice - Which plural string to get. 1 returns the first one. * * @returns translation message that is pluraled */ $tc< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, choice: number ): TranslateResult /** * Locale message pluralization * Supported for Legacy API mode only. * * @remarks * Overloaded `$tc`. About details, see the {@link $tc} remarks. * Supported for Legacy API mode only. * * @param key - A target locale message key * @param choice - Which plural string to get. 1 returns the first one. * @param locale - A locale, override locale that global scope or local scope * * @returns translation message that is pluraled */ $tc< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, choice: number, locale: Locale ): TranslateResult /** * Locale message pluralization * Supported for Legacy API mode only. * * @remarks * Overloaded `$tc`. About details, see the {@link $tc} remarks. * Supported for Legacy API mode only. * * @param key - A target locale message key * @param choice - Which plural string to get. 1 returns the first one. * @param list - A values of list interpolation * * @returns translation message that is pluraled */ $tc< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, choice: number, list: unknown[] ): TranslateResult /** * Locale message pluralization * Supported for Legacy API mode only. * * @remarks * Overloaded `$tc`. About details, see the {@link $tc} remarks. * Supported for Legacy API mode only. * * @param key - A target locale message key * @param choice - Which plural string to get. 1 returns the first one. * @param named - A values of named interpolation * * @returns translation message that is pluraled */ $tc< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, choice: number, named: Record ): TranslateResult /** * Translation message exist * * @remarks * About that details, see {@link VueI18n#te | `VueI18n#te` } or {@link Composer#te | `Composer#te`}. * * @param key - A target locale message key * @param locale - A locale, optional, override locale that global scope or local scope * * @returns If found locale message, `true`, else `false`, Note that `false` is returned even if the value present in the key is not translatable, yet if `translateExistCompatible` is set to `true`, it will return `true` if the key is available, even if the value is not translatable. */ $te< Key extends string, DefinedLocaleMessage extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupPaths<{ [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( key: Key | ResourceKeys | Path, locale?: Locale ): boolean /** * Datetime formatting * * @remarks * If this is used in a reactive context, it will re-evaluate once the locale changes. * * In {@link I18nMode | Legacy API mode}, the input / output is the same as for VueI18n instance. About that details, see {@link VueI18n#d | `VueI18n#d` }. * * In {@link I18nMode | Composition API mode}, the `$d` is injected by `app.config.globalProperties`. * the input / output is the same as for Composer instance, and it work on **global scope**. About that details, see {@link Composer#d | `Composer#d` }. * * @param value - A value, timestamp number or `Date` instance * * @returns formatted value */ $d(value: number | Date): DateTimeFormatResult /** * Datetime formatting * * @remarks * Overloaded `$d`. About details, see the {@link $d} remarks. * * @param value - A value, timestamp number or `Date` instance * @param key - A key of datetime formats * * @returns formatted value */ $d< Value extends number | Date = number, Key extends string = string, DefinedDateTimeFormat extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupFormatPathKeys<{ [K in keyof DefinedDateTimeFormat]: DefinedDateTimeFormat[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( value: Value, key: Key | ResourceKeys ): DateTimeFormatResult /** * Datetime formatting * * @remarks * Overloaded `$d`. About details, see the {@link $d} remarks. * * @param value - A value, timestamp number or `Date` instance * @param key - A key of datetime formats * @param locale - A locale, optional, override locale that global scope or local scope * * @returns formatted value */ $d< Value extends number | Date = number, Key extends string = string, DefinedDateTimeFormat extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupFormatPathKeys<{ [K in keyof DefinedDateTimeFormat]: DefinedDateTimeFormat[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( value: Value, key: Key | ResourceKeys, locale: Locale ): DateTimeFormatResult /** * Datetime formatting * * @remarks * Overloaded `$d`. About details, see the {@link $d} remarks. * * @param value - A value, timestamp number or `Date` instance * @param args - An argument values * * @returns formatted value */ $d( value: number | Date, args: { [key: string]: string } ): DateTimeFormatResult /** * Datetime formatting * * @remarks * Overloaded `$d`. About details, see the {@link $d} remarks. * * @param value - A value, timestamp number or `Date` instance * * @returns formatted value */ $d(value: number | Date): string /** * Datetime formatting * * @remarks * Overloaded `$d`. About details, see the {@link $d} remarks. * * @param value - A value, timestamp number or `Date` instance * @param key - A key of datetime formats * * @returns formatted value */ $d< Value extends number | Date = number, Key extends string = string, DefinedDateTimeFormat extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupFormatPathKeys<{ [K in keyof DefinedDateTimeFormat]: DefinedDateTimeFormat[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( value: Value, key: Key | ResourceKeys ): string /** * Datetime formatting * * @remarks * Overloaded `$d`. About details, see the {@link $d} remarks. * * @param value - A value, timestamp number or `Date` instance * @param key - A key of datetime formats * @param locale - A locale, optional, override locale that global scope or local scope * * @returns formatted value */ $d< Value extends number | Date = number, Key extends string = string, DefinedDateTimeFormat extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupFormatPathKeys<{ [K in keyof DefinedDateTimeFormat]: DefinedDateTimeFormat[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( value: Value, key: Key | ResourceKeys, locale: Locale ): string /** * Datetime formatting * * @remarks * Overloaded `$d`. About details, see the {@link $d} remarks. * * @param value - A value, timestamp number or `Date` instance * @param options - An options, see the {@link DateTimeOptions} * * @returns formatted value */ $d(value: number | Date, options: DateTimeOptions): string /** * Number formatting * * @remarks * If this is used in a reactive context, it will re-evaluate once the locale changes. * * In {@link I18nMode | Legacy API mode}, the input / output is the same as for VueI18n instance. About that details, see {@link VueI18n#n | `VueI18n.n` }. * * In {@link I18nMode | Composition API mode}, the `$n` is injected by `app.config.globalProperties`. * the input / output is the same as for Composer instance, and it work on **global scope**. About that details, see {@link Composer#n | `Composer.n` }. * * @param value - A number value * * @returns formatted value */ $n(value: number): NumberFormatResult /** * Number formatting * * @remarks * Overloaded `$n`. About details, see the {@link $n} remarks. * * @param value - A number value * @param key - A key of number formats * * @returns formatted value */ $n< Key extends string = string, DefinedNumberFormat extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupFormatPathKeys<{ [K in keyof DefinedNumberFormat]: DefinedNumberFormat[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( value: number, key: Key | ResourceKeys ): NumberFormatResult /** * Number formatting * * @remarks * Overloaded `$n`. About details, see the {@link $n} remarks. * * @param value - A number value * @param key - A key of number formats * @param locale - A locale, optional, override locale that global scope or local scope * * @returns formatted value */ $n< Key extends string = string, DefinedNumberFormat extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupFormatPathKeys<{ [K in keyof DefinedNumberFormat]: DefinedNumberFormat[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( value: number, key: Key | ResourceKeys, locale: Locale ): NumberFormatResult /** * Number formatting * * @remarks * Overloaded `$n`. About details, see the {@link $n} remarks. * * @param value - A number value * @param args - An argument values * * @returns formatted value */ $n( value: number, args: { [key: string]: string | boolean | number } ): NumberFormatResult /** * Number formatting * * @remarks * Overloaded `$n`. About details, see the {@link $n} remarks. * * @param value - A number value * @param key - A key of number formats * @param args - An argument values * * @returns formatted value */ $n( value: number, key: string, args: { [key: string]: string | boolean | number } ): NumberFormatResult /** * Number formatting * * @remarks * Overloaded `$n`. About details, see the {@link $n} remarks. * * @param value - A number value * @param key - A key of number formats * @param locale - A locale, optional, override locale that global scope or local scope * @param args - An argument values * * @returns formatted value */ $n( value: number, key: string, locale: Locale, args: { [key: string]: string | boolean | number } ): NumberFormatResult /** * Number formatting * * @remarks * Overloaded `$n`. About details, see the {@link $n} remarks. * * @param value - A number value * * @returns formatted value */ $n(value: number): string /** * Number formatting * * @remarks * Overloaded `$n`. About details, see the {@link $n} remarks. * * @param value - A number value * @param key - A key of number formats * * @returns formatted value */ $n< Key extends string = string, DefinedNumberFormat extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupFormatPathKeys<{ [K in keyof DefinedNumberFormat]: DefinedNumberFormat[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( value: number, key: Key | ResourceKeys ): string /** * Number formatting * * @remarks * Overloaded `$n`. About details, see the {@link $n} remarks. * * @param value - A number value * @param key - A key of number formats * @param locale - A locale, optional, override locale that global scope or local scope * * @returns formatted value */ $n< Key extends string = string, DefinedNumberFormat extends RemovedIndexResources = RemovedIndexResources, Keys = IsEmptyObject extends false ? PickupFormatPathKeys<{ [K in keyof DefinedNumberFormat]: DefinedNumberFormat[K] }> : never, ResourceKeys extends Keys = IsNever extends false ? Keys : never >( value: number, key: Key | ResourceKeys, locale: Locale ): string /** * Number formatting * * @remarks * Overloaded `$n`. About details, see the {@link $n} remarks. * * @param value - A number value * @param options - An options, see the {@link NumberOptions} * * @returns formatted value */ $n(value: number, options: NumberOptions): string /** * Locale messages getter * * In {@link I18nMode | Legacy API mode}, the input / output is the same as for VueI18n instance. About that details, see {@link VueI18n#tm | `VueI18n#tm` }. * * @remarks * In {@link I18nMode | Composition API mode}, the `$tm` is injected by `app.config.globalProperties`. * the input / output is the same as for Composer instance, and it work on **global scope**. About that details, see {@link Composer#tm | `Composer.tm` }. * Based on the current `locale`, locale messages will be returned from Composer instance messages. * If you change the `locale`, the locale messages returned will also correspond to the locale. * If there are no locale messages for the given `key` in the composer instance messages, they will be returned with fallbacking. * * @param key - A target locale message key * * @returns locale messages */ $tm< Key extends string, Messages extends object = {}, ResourceKeys extends PickupKeys = PickupKeys >( key: Key | ResourceKeys ): LocaleMessageValue | {} } } declare module 'vue' { export interface GlobalComponents { ['i18n-t']: typeof Translation ['i18n-d']: typeof DatetimeFormat ['i18n-n']: typeof NumberFormat ['I18nT']: typeof Translation ['I18nD']: typeof DatetimeFormat ['I18nN']: typeof NumberFormat } }