7ca6696d3d61b536a980596c95b4baad88c419b38e77c44ecbaba02fb628468570ea76dc338a79119c99b701e4e877b3e69992e30abd552e1a52c494af688f 58 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274
  1. import type { BaseError } from '@intlify/shared';
  2. import { CompileError } from '@intlify/message-compiler';
  3. import { CompileErrorCodes } from '@intlify/message-compiler';
  4. import type { CompileOptions } from '@intlify/message-compiler';
  5. import type { CoreMissingType as CoreMissingType_2 } from '@intlify/core-base';
  6. import { createCompileError } from '@intlify/message-compiler';
  7. import type { Emittable } from '@intlify/shared';
  8. import type { Locale as Locale_2 } from '@intlify/core-base';
  9. import type { MessageFunction as MessageFunction_2 } from '@intlify/core-base';
  10. import type { Path as Path_2 } from '@intlify/core-base';
  11. import type { PathValue as PathValue_2 } from '@intlify/core-base';
  12. import { ResourceNode } from '@intlify/message-compiler';
  13. import type { ResourceNode as ResourceNode_2 } from '@intlify/core-base';
  14. declare type __ResourceFormatPath<T, Key extends keyof T> = Key extends string ? T[Key] extends Record<string, any> ? `${Key}` : never : never;
  15. export declare type __ResourcePath<T, Key extends keyof T> = Key extends string ? T[Key] extends Record<string, any> ? `${Key}.${__ResourcePath<T[Key], Exclude<keyof T[Key], keyof any[]>> & string}` | `${Key}.${Exclude<keyof T[Key], keyof any[]> & string}` : never : never;
  16. declare type AdditionalPayloads = {
  17. meta?: Record<string, unknown>;
  18. };
  19. export declare const AST_NODE_PROPS_KEYS: string[];
  20. export declare function clearCompileCache(): void;
  21. /* Excluded from this release type: clearDateTimeFormat */
  22. /* Excluded from this release type: clearNumberFormat */
  23. export declare function compile<Message = string, MessageSource = string | ResourceNode>(message: MessageSource, context: MessageCompilerContext): MessageFunction<Message>;
  24. export { CompileError }
  25. export { CompileErrorCodes }
  26. export declare const compileToFunction: <Message = string, MessageSource = string | ResourceNode>(message: MessageSource, context: MessageCompilerContext) => MessageFunction<Message>;
  27. export declare interface CoreCommonContext<Message = string, Locales = 'en-US'> {
  28. cid: number;
  29. version: string;
  30. locale: Locales;
  31. fallbackLocale: FallbackLocales<Exclude<Locales, LocaleDetector>>;
  32. missing: CoreMissingHandler<Message> | null;
  33. missingWarn: boolean | RegExp;
  34. fallbackWarn: boolean | RegExp;
  35. fallbackFormat: boolean;
  36. unresolving: boolean;
  37. localeFallbacker: LocaleFallbacker;
  38. onWarn(msg: string, err?: Error): void;
  39. }
  40. export declare type CoreContext<Message = string, Messages = {}, DateTimeFormats = {}, NumberFormats = {}, LocaleType = Locale, ResourceLocales = PickupLocales<NonNullable<Messages>> | PickupLocales<NonNullable<DateTimeFormats>> | PickupLocales<NonNullable<NumberFormats>>, Locales = IsNever<ResourceLocales> extends true ? LocaleType extends LocaleDetector | Locale ? LocaleType : Locale : ResourceLocales> = CoreCommonContext<Message, Locales> & CoreTranslationContext<NonNullable<Messages>, Message> & CoreDateTimeContext<NonNullable<DateTimeFormats>> & CoreNumberContext<NonNullable<NumberFormats>> & {
  41. fallbackContext?: CoreContext<Message, Messages, DateTimeFormats, NumberFormats, LocaleType, ResourceLocales, Locales>;
  42. };
  43. export declare interface CoreDateTimeContext<DateTimeFormats = {}> {
  44. datetimeFormats: {
  45. [K in keyof DateTimeFormats]: DateTimeFormats[K];
  46. };
  47. }
  48. export declare interface CoreError extends BaseError {
  49. }
  50. export declare const CoreErrorCodes: {
  51. readonly INVALID_ARGUMENT: 17;
  52. readonly INVALID_DATE_ARGUMENT: number;
  53. readonly INVALID_ISO_DATE_ARGUMENT: number;
  54. readonly NOT_SUPPORT_NON_STRING_MESSAGE: number;
  55. readonly NOT_SUPPORT_LOCALE_PROMISE_VALUE: number;
  56. readonly NOT_SUPPORT_LOCALE_ASYNC_FUNCTION: number;
  57. readonly NOT_SUPPORT_LOCALE_TYPE: number;
  58. readonly __EXTEND_POINT__: number;
  59. };
  60. export declare type CoreErrorCodes = (typeof CoreErrorCodes)[keyof typeof CoreErrorCodes];
  61. export declare interface CoreInternalContext {
  62. __datetimeFormatters: Map<string, Intl.DateTimeFormat>;
  63. __numberFormatters: Map<string, Intl.NumberFormat>;
  64. __localeChainCache?: Map<Locale, Locale[]>;
  65. __v_emitter?: VueDevToolsEmitter;
  66. __meta: MetaInfo;
  67. }
  68. export declare interface CoreInternalOptions {
  69. __datetimeFormatters?: Map<string, Intl.DateTimeFormat>;
  70. __numberFormatters?: Map<string, Intl.NumberFormat>;
  71. __v_emitter?: VueDevToolsEmitter;
  72. __meta?: MetaInfo;
  73. }
  74. export declare type CoreMissingHandler<Message = string> = (context: CoreContext<Message>, locale: Locale, key: Path, type: CoreMissingType, ...values: unknown[]) => string | void;
  75. export declare type CoreMissingType = 'translate' | 'datetime format' | 'number format' | 'translate exists';
  76. export declare interface CoreNumberContext<NumberFormats = {}> {
  77. numberFormats: {
  78. [K in keyof NumberFormats]: NumberFormats[K];
  79. };
  80. }
  81. export declare interface CoreOptions<Message = string, Schema extends {
  82. message?: unknown;
  83. datetime?: unknown;
  84. number?: unknown;
  85. } = {
  86. message: DefaultCoreLocaleMessageSchema;
  87. datetime: DateTimeFormat;
  88. number: NumberFormat;
  89. }, Locales extends {
  90. messages: unknown;
  91. datetimeFormats: unknown;
  92. numberFormats: unknown;
  93. } | string = Locale, MessagesLocales = Locales extends {
  94. messages: infer M;
  95. } ? M : Locales extends string ? Locales : Locale, DateTimeFormatsLocales = Locales extends {
  96. datetimeFormats: infer D;
  97. } ? D : Locales extends string ? Locales : Locale, NumberFormatsLocales = Locales extends {
  98. numberFormats: infer N;
  99. } ? N : Locales extends string ? Locales : Locale, MessageSchema = Schema extends {
  100. message: infer M;
  101. } ? M : DefaultCoreLocaleMessageSchema, DateTimeSchema = Schema extends {
  102. datetime: infer D;
  103. } ? D : DateTimeFormat, NumberSchema = Schema extends {
  104. number: infer N;
  105. } ? N : NumberFormat, _Messages extends LocaleMessages<MessageSchema, MessagesLocales, Message> = LocaleMessages<MessageSchema, MessagesLocales, Message>, _DateTimeFormats extends DateTimeFormats<DateTimeSchema, DateTimeFormatsLocales> = DateTimeFormats<DateTimeSchema, DateTimeFormatsLocales>, _NumberFormats extends NumberFormats<NumberSchema, NumberFormatsLocales> = NumberFormats<NumberSchema, NumberFormatsLocales>> {
  106. version?: string;
  107. locale?: Locale | LocaleDetector;
  108. fallbackLocale?: FallbackLocale;
  109. messages?: {
  110. [K in keyof _Messages]: MessageSchema;
  111. };
  112. datetimeFormats?: {
  113. [K in keyof _DateTimeFormats]: DateTimeSchema;
  114. };
  115. numberFormats?: {
  116. [K in keyof _NumberFormats]: NumberSchema;
  117. };
  118. modifiers?: LinkedModifiers<Message>;
  119. pluralRules?: PluralizationRules;
  120. missing?: CoreMissingHandler<Message>;
  121. missingWarn?: boolean | RegExp;
  122. fallbackWarn?: boolean | RegExp;
  123. fallbackFormat?: boolean;
  124. unresolving?: boolean;
  125. postTranslation?: PostTranslationHandler<Message>;
  126. processor?: MessageProcessor<Message>;
  127. warnHtmlMessage?: boolean;
  128. escapeParameter?: boolean;
  129. messageCompiler?: MessageCompiler<Message, string | ResourceNode>;
  130. messageResolver?: MessageResolver;
  131. localeFallbacker?: LocaleFallbacker;
  132. fallbackContext?: CoreContext<Message, MessagesLocales, DateTimeFormatsLocales, NumberFormatsLocales>;
  133. onWarn?: (msg: string, err?: Error) => void;
  134. }
  135. export declare interface CoreTranslationContext<Messages = {}, Message = string> {
  136. messages: {
  137. [K in keyof Messages]: Messages[K];
  138. };
  139. modifiers: LinkedModifiers<Message>;
  140. pluralRules?: PluralizationRules;
  141. postTranslation: PostTranslationHandler<Message> | null;
  142. processor: MessageProcessor<Message> | null;
  143. warnHtmlMessage: boolean;
  144. escapeParameter: boolean;
  145. messageCompiler: MessageCompiler<Message, string | ResourceNode> | null;
  146. messageResolver: MessageResolver;
  147. }
  148. export declare const CoreWarnCodes: {
  149. readonly NOT_FOUND_KEY: 2;
  150. readonly FALLBACK_TO_TRANSLATE: number;
  151. readonly CANNOT_FORMAT_NUMBER: number;
  152. readonly FALLBACK_TO_NUMBER_FORMAT: number;
  153. readonly CANNOT_FORMAT_DATE: number;
  154. readonly FALLBACK_TO_DATE_FORMAT: number;
  155. readonly EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER: number;
  156. readonly __EXTEND_POINT__: number;
  157. };
  158. export declare type CoreWarnCodes = (typeof CoreWarnCodes)[keyof typeof CoreWarnCodes];
  159. export { createCompileError }
  160. export declare function createCoreContext<Message = string, Options extends CoreOptions<Message> = CoreOptions<Message>, Messages extends Record<string, any> = Options['messages'] extends Record<string, any> ? Options['messages'] : {}, DateTimeFormats extends Record<string, any> = Options['datetimeFormats'] extends Record<string, any> ? Options['datetimeFormats'] : {}, NumberFormats extends Record<string, any> = Options['numberFormats'] extends Record<string, any> ? Options['numberFormats'] : {}, LocaleType = Locale | LocaleDetector>(options: Options): CoreContext<Message, Messages, DateTimeFormats, NumberFormats, LocaleType>;
  161. export declare function createCoreContext<Schema = LocaleMessage, Locales = 'en-US', Message = string, Options extends CoreOptions<Message, SchemaParams<Schema, Message>, LocaleParams<Locales>> = CoreOptions<Message, SchemaParams<Schema, Message>, LocaleParams<Locales>>, Messages extends Record<string, any> = NonNullable<Options['messages']> extends Record<string, any> ? NonNullable<Options['messages']> : {}, DateTimeFormats extends Record<string, any> = NonNullable<Options['datetimeFormats']> extends Record<string, any> ? NonNullable<Options['datetimeFormats']> : {}, NumberFormats extends Record<string, any> = NonNullable<Options['numberFormats']> extends Record<string, any> ? NonNullable<Options['numberFormats']> : {}, LocaleType = Locale | LocaleDetector>(options: Options): CoreContext<Message, Messages, DateTimeFormats, NumberFormats, LocaleType>;
  162. export declare function createCoreError(code: CoreErrorCodes): CoreError;
  163. export declare function createMessageContext<T = string, N = {}>(options?: MessageContextOptions<T, N>): MessageContext<T>;
  164. /**
  165. * number
  166. */
  167. export declare type CurrencyDisplay = 'symbol' | 'code' | 'name';
  168. export declare interface CurrencyNumberFormatOptions extends Intl.NumberFormatOptions {
  169. style: 'currency';
  170. currency: string;
  171. currencyDisplay?: CurrencyDisplay;
  172. localeMatcher?: LocaleMatcher;
  173. formatMatcher?: FormatMatcher;
  174. }
  175. /**
  176. * `datetime` function overloads
  177. */
  178. export declare function datetime<Context extends CoreContext<Message, {}, {}, {}>, Message = string>(context: Context, value: number | string | Date): string | number | Intl.DateTimeFormatPart[];
  179. export declare function datetime<Context extends CoreContext<Message, {}, {}, {}>, Value extends number | string | Date = number, Key extends string = string, ResourceKeys extends PickupFormatKeys<Context['datetimeFormats']> = PickupFormatKeys<Context['datetimeFormats']>, Message = string>(context: Context, value: Value, keyOrOptions: Key | ResourceKeys | DateTimeOptions<Key | ResourceKeys, Context['locale']>): string | number | Intl.DateTimeFormatPart[];
  180. export declare function datetime<Context extends CoreContext<Message, {}, {}, {}>, Value extends number | string | Date = number, Key extends string = string, ResourceKeys extends PickupFormatKeys<Context['datetimeFormats']> = PickupFormatKeys<Context['datetimeFormats']>, Message = string>(context: Context, value: Value, keyOrOptions: Key | ResourceKeys | DateTimeOptions<Key | ResourceKeys, Context['locale']>, locale: Context['locale']): string | number | Intl.DateTimeFormatPart[];
  181. export declare function datetime<Context extends CoreContext<Message, {}, {}, {}>, Value extends number | string | Date = number, Key extends string = string, ResourceKeys extends PickupFormatKeys<Context['datetimeFormats']> = PickupFormatKeys<Context['datetimeFormats']>, Message = string>(context: Context, value: Value, keyOrOptions: Key | ResourceKeys | DateTimeOptions<Key | ResourceKeys, Context['locale']>, override: Intl.DateTimeFormatOptions): string | number | Intl.DateTimeFormatPart[];
  182. export declare function datetime<Context extends CoreContext<Message, {}, {}, {}>, Value extends number | string | Date = number, Key extends string = string, ResourceKeys extends PickupFormatKeys<Context['datetimeFormats']> = PickupFormatKeys<Context['datetimeFormats']>, Message = string>(context: Context, value: Value, keyOrOptions: Key | ResourceKeys | DateTimeOptions<Key | ResourceKeys, Context['locale']>, locale: Context['locale'], override: Intl.DateTimeFormatOptions): string | number | Intl.DateTimeFormatPart[];
  183. /* Excluded from this release type: DATETIME_FORMAT_OPTIONS_KEYS */
  184. export declare type DateTimeDigital = 'numeric' | '2-digit';
  185. export declare type DateTimeFormat = {
  186. [key: string]: DateTimeFormatOptions;
  187. };
  188. export declare type DateTimeFormatOptions = Intl.DateTimeFormatOptions | SpecificDateTimeFormatOptions;
  189. export declare type DateTimeFormats<Schema = DateTimeFormat, Locales = Locale> = LocaleRecord<UnionToTuple<Locales>, Schema>;
  190. /**
  191. * datetime
  192. */
  193. export declare type DateTimeHumanReadable = 'long' | 'short' | 'narrow';
  194. /**
  195. * # datetime
  196. *
  197. * ## usages:
  198. * // for example `context.datetimeFormats` below
  199. * 'en-US': {
  200. * short: {
  201. * year: 'numeric', month: '2-digit', day: '2-digit',
  202. * hour: '2-digit', minute: '2-digit'
  203. * }
  204. * },
  205. * 'ja-JP': { ... }
  206. *
  207. * // datetimeable value only
  208. * datetime(context, value)
  209. *
  210. * // key argument
  211. * datetime(context, value, 'short')
  212. *
  213. * // key & locale argument
  214. * datetime(context, value, 'short', 'ja-JP')
  215. *
  216. * // object sytle argument
  217. * datetime(context, value, { key: 'short', locale: 'ja-JP' })
  218. *
  219. * // suppress localize miss warning option, override context.missingWarn
  220. * datetime(context, value, { key: 'short', locale: 'ja-JP', missingWarn: false })
  221. *
  222. * // suppress localize fallback warning option, override context.fallbackWarn
  223. * datetime(context, value, { key: 'short', locale: 'ja-JP', fallbackWarn: false })
  224. *
  225. * // if you specify `part` options, you can get an array of objects containing the formatted datetime in parts
  226. * datetime(context, value, { key: 'short', part: true })
  227. *
  228. * // orverride context.datetimeFormats[locale] options with functino options
  229. * datetime(cnotext, value, 'short', { year: '2-digit' })
  230. * datetime(cnotext, value, 'short', 'ja-JP', { year: '2-digit' })
  231. * datetime(context, value, { key: 'short', part: true, year: '2-digit' })
  232. */
  233. /**
  234. * DateTime options
  235. *
  236. * @remarks
  237. * Options for Datetime formatting API
  238. *
  239. * @VueI18nGeneral
  240. */
  241. export declare interface DateTimeOptions<Key = string, Locales = Locale> extends Intl.DateTimeFormatOptions, LocaleOptions<Locales> {
  242. /**
  243. * @remarks
  244. * The target format key
  245. */
  246. key?: Key;
  247. /**
  248. * @remarks
  249. * Whether suppress warnings outputted when localization fails
  250. */
  251. missingWarn?: boolean;
  252. /**
  253. * @remarks
  254. * Whether do resolve on format keys when your language lacks a formatting for a key
  255. */
  256. fallbackWarn?: boolean;
  257. /**
  258. * @remarks
  259. * Whether to use [Intel.DateTimeFormat#formatToParts](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts)
  260. */
  261. part?: boolean;
  262. }
  263. export declare const DEFAULT_LOCALE = "en-US";
  264. export declare const DEFAULT_MESSAGE_DATA_TYPE = "text";
  265. export declare type DefaultCoreLocaleMessageSchema<Schema = RemoveIndexSignature<{
  266. [K in keyof DefineCoreLocaleMessage]: DefineCoreLocaleMessage[K];
  267. }>> = IsEmptyObject<Schema> extends true ? LocaleMessage<string> : Schema;
  268. /**
  269. * The type definition of Locale Message for `@intlify/core-base` package
  270. *
  271. * @remarks
  272. * The typealias is used to strictly define the type of the Locale message.
  273. *
  274. * @example
  275. * ```ts
  276. * // type.d.ts (`.d.ts` file at your app)
  277. * import { DefineCoreLocaleMessage } from '@intlify/core-base'
  278. *
  279. * declare module '@intlify/core-base' {
  280. * export interface DefineCoreLocaleMessage {
  281. * title: string
  282. * menu: {
  283. * login: string
  284. * }
  285. * }
  286. * }
  287. * ```
  288. *
  289. * @VueI18nGeneral
  290. */
  291. export declare interface DefineCoreLocaleMessage extends LocaleMessage<string> {
  292. }
  293. declare type ExtractToStringFunction<T> = T[ExtractToStringKey<T>];
  294. declare type ExtractToStringKey<T> = Extract<keyof T, 'toString'>;
  295. /** @VueI18nGeneral */
  296. export declare type FallbackLocale = Locale | Locale[] | {
  297. [locale in string]: Locale[];
  298. } | false;
  299. export declare type FallbackLocales<Locales = 'en-US'> = Locales | Array<Locales> | {
  300. [locale in string]: Array<PickupFallbackLocales<UnionToTuple<Locales>>>;
  301. } | false;
  302. /**
  303. * Fallback with locale chain
  304. *
  305. * @remarks
  306. * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.
  307. *
  308. * @param ctx - A {@link CoreContext | context}
  309. * @param fallback - A {@link FallbackLocale | fallback locale}
  310. * @param start - A starting {@link Locale | locale}
  311. *
  312. * @returns Fallback locales
  313. *
  314. * @VueI18nSee [Fallbacking](../guide/essentials/fallback)
  315. *
  316. * @VueI18nGeneral
  317. */
  318. export declare function fallbackWithLocaleChain<Message = string>(ctx: CoreContext<Message>, fallback: FallbackLocale, start: Locale): Locale[];
  319. /**
  320. * Fallback with simple implemenation
  321. *
  322. * @remarks
  323. * A fallback locale function implemented with a simple fallback algorithm.
  324. *
  325. * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.
  326. *
  327. * @param ctx - A {@link CoreContext | context}
  328. * @param fallback - A {@link FallbackLocale | fallback locale}
  329. * @param start - A starting {@link Locale | locale}
  330. *
  331. * @returns Fallback locales
  332. *
  333. * @VueI18nGeneral
  334. */
  335. export declare function fallbackWithSimple<Message = string>(ctx: CoreContext<Message>, fallback: FallbackLocale, start: Locale): Locale[];
  336. export declare type First<T extends readonly any[]> = T[0];
  337. export declare type FormatMatcher = 'basic' | 'best fit';
  338. export declare type FormattedNumberPart = {
  339. type: FormattedNumberPartType;
  340. value: string;
  341. };
  342. export declare type FormattedNumberPartType = 'currency' | 'decimal' | 'fraction' | 'group' | 'infinity' | 'integer' | 'literal' | 'minusSign' | 'nan' | 'plusSign' | 'percentSign';
  343. export declare const getAdditionalMeta: () => MetaInfo | null;
  344. export declare function getDevToolsHook(): IntlifyDevToolsEmitter | null;
  345. export declare const getFallbackContext: () => CoreContext | null;
  346. /* Excluded from this release type: getLocale */
  347. export declare function getWarnMessage(code: CoreWarnCodes, ...args: unknown[]): string;
  348. /* Excluded from this release type: handleMissing */
  349. export declare function initI18nDevTools(i18n: unknown, version: string, meta?: Record<string, unknown>): void;
  350. declare type IntlifyDevToolsEmitter = Emittable<IntlifyDevToolsEmitterHooks>;
  351. declare type IntlifyDevToolsEmitterHooks = {
  352. [IntlifyDevToolsHooks.I18nInit]: IntlifyDevToolsHookPayloads[IntlifyDevToolsHooks.I18nInit];
  353. [IntlifyDevToolsHooks.FunctionTranslate]: IntlifyDevToolsHookPayloads[IntlifyDevToolsHooks.FunctionTranslate];
  354. };
  355. declare type IntlifyDevToolsHookPayloads = {
  356. [IntlifyDevToolsHooks.I18nInit]: {
  357. timestamp: number;
  358. i18n: unknown;
  359. version: string;
  360. } & AdditionalPayloads;
  361. [IntlifyDevToolsHooks.FunctionTranslate]: {
  362. timestamp: number;
  363. message: string | number;
  364. key: string;
  365. locale: string;
  366. format?: string;
  367. } & AdditionalPayloads;
  368. };
  369. declare const enum IntlifyDevToolsHooks {
  370. I18nInit = "i18n:init",
  371. FunctionTranslate = "function:translate"
  372. }
  373. /* Excluded from this release type: isAlmostSameLocale */
  374. export declare type IsEmptyObject<T> = IsNever<keyof T> extends true ? true : false;
  375. /* Excluded from this release type: isImplicitFallback */
  376. export declare function isMessageAST(val: unknown): val is ResourceNode;
  377. export declare const isMessageFunction: <T>(val: unknown) => val is MessageFunction<T>;
  378. export declare type IsNever<T> = [T] extends [never] ? true : false;
  379. /* Excluded from this release type: isTranslateFallbackWarn */
  380. /* Excluded from this release type: isTranslateMissingWarn */
  381. export declare type IsUnion<T, B = T> = T extends B ? [B] extends [T] ? false : true : never;
  382. export declare type LastInUnion<U> = UnionToIntersection<U extends unknown ? (x: U) => 0 : never> extends (x: infer L) => 0 ? L : never;
  383. /** @VueI18nGeneral */
  384. export declare type LinkedModifiers<T = string> = {
  385. [key: string]: LinkedModify<T>;
  386. };
  387. export declare type LinkedModify<T = string> = (value: T, type: string) => MessageType<T>;
  388. export declare interface LinkedOptions {
  389. /**
  390. * The message type of linked message
  391. */
  392. type?: string;
  393. /**
  394. * The modifier of linked message
  395. */
  396. modifier?: string;
  397. }
  398. /** @VueI18nGeneral */
  399. export declare type Locale = string;
  400. /** @VueI18nGeneral */
  401. export declare interface LocaleDetector<Args extends any[] = any[]> {
  402. (...args: Args): Locale | Promise<Locale>;
  403. resolvedOnce?: boolean;
  404. }
  405. /**
  406. * The locale fallbacker
  407. *
  408. * @VueI18nGeneral
  409. */
  410. export declare type LocaleFallbacker = <Message = string>(ctx: CoreContext<Message>, fallback: FallbackLocale, start: Locale) => Locale[];
  411. export declare type LocaleMatcher = 'lookup' | 'best fit';
  412. /** @VueI18nGeneral */
  413. export declare type LocaleMessage<Message = string> = Record<string, LocaleMessageValue<Message>>;
  414. /** @VueI18nGeneral */
  415. export declare type LocaleMessageDictionary<T, Message = string> = {
  416. [K in keyof T]: LocaleMessageType<T[K], Message>;
  417. };
  418. /** @VueI18nGeneral */
  419. export declare type LocaleMessages<Schema, Locales = Locale, Message = string> = LocaleRecord<UnionToTuple<Locales>, Schema>;
  420. /** @VueI18nGeneral */
  421. export declare type LocaleMessageType<T, Message = string> = T extends string ? string : T extends () => Promise<infer P> ? LocaleMessageDictionary<P, Message> : T extends (...args: infer Arguments) => any ? (...args: Arguments) => ReturnType<T> : T extends Record<string, unknown> ? LocaleMessageDictionary<T, Message> : T extends Array<T> ? {
  422. [K in keyof T]: T[K];
  423. } : T;
  424. /** @VueI18nGeneral */
  425. export declare type LocaleMessageValue<Message = string> = LocaleMessageDictionary<any, Message> | string;
  426. /** @VueI18nGeneral */
  427. export declare interface LocaleOptions<Locales = Locale> {
  428. /**
  429. * @remarks
  430. * The locale of localization
  431. */
  432. locale?: Locales | LocaleDetector;
  433. }
  434. export declare type LocaleParams<T, Default = 'en-US'> = T extends IsUnion<T> ? {
  435. messages: T;
  436. datetimeFormats: T;
  437. numberFormats: T;
  438. } : T extends {
  439. messages?: infer M;
  440. datetimeFormats?: infer D;
  441. numberFormats?: infer N;
  442. } ? {
  443. messages: LocaleParamsType<M, Default>;
  444. datetimeFormats: LocaleParamsType<D, Default>;
  445. numberFormats: LocaleParamsType<N, Default>;
  446. } : T extends string ? {
  447. messages: T;
  448. datetimeFormats: T;
  449. numberFormats: T;
  450. } : {
  451. messages: Default;
  452. datetimeFormats: Default;
  453. numberFormats: Default;
  454. };
  455. declare type LocaleParamsType<T, R> = T extends IsUnion<T> ? T : T extends string ? T : R;
  456. export declare type LocaleRecord<T extends any[], R> = {
  457. [K in T[number]]: R;
  458. };
  459. /**
  460. * The message compiler
  461. *
  462. * @param message - A resolved message that ususally will be passed the string. if you can transform to it with bundler, will be passed the AST.
  463. * @param context - A message context {@link MessageCompilerContext}
  464. *
  465. * @returns A {@link MessageFunction}
  466. *
  467. * @VueI18nGeneral
  468. */
  469. export declare type MessageCompiler<Message = string, MessageSource = string | ResourceNode> = (message: MessageSource, context: MessageCompilerContext) => MessageFunction<Message>;
  470. /**
  471. * The context that will pass the message compiler.
  472. *
  473. * @VueI18nGeneral
  474. */
  475. export declare type MessageCompilerContext = Pick<CompileOptions, 'onError' | 'onCacheKey' | 'onWarn'> & {
  476. /**
  477. * Whether to allow the use locale messages of HTML formatting.
  478. */
  479. warnHtmlMessage?: boolean;
  480. /**
  481. * The resolved locale message key
  482. */
  483. key: string;
  484. /**
  485. * The locale
  486. */
  487. locale: Locale;
  488. };
  489. /**
  490. * The message context.
  491. *
  492. * @VueI18nGeneral
  493. */
  494. export declare interface MessageContext<T = string> {
  495. /**
  496. * Resolve message value from list.
  497. *
  498. * @param index - An index of message values.
  499. *
  500. * @returns A resolved message value.
  501. *
  502. * @example
  503. * ```js
  504. * const messages = {
  505. * en: {
  506. * greeting: ({ list }) => `hello, ${list(0)}!`
  507. * }
  508. * }
  509. * ```
  510. */
  511. list(index: number): unknown;
  512. /**
  513. * Resolve message value from named.
  514. *
  515. * @param key - A key of message value.
  516. *
  517. * @returns A resolved message value.
  518. *
  519. * @example
  520. * ```js
  521. * const messages = {
  522. * en: {
  523. * greeting: ({ named }) => `hello, ${named('name')}!`
  524. * }
  525. * }
  526. * ```
  527. */
  528. named(key: string): unknown;
  529. /**
  530. * Resolve message with plural index.
  531. *
  532. * @remarks
  533. * That's resolved with plural index with translation function.
  534. *
  535. * @param messages - the messages, that is resolved with plural index with translation function.
  536. *
  537. * @returns A resolved message.
  538. *
  539. * @example
  540. * ```js
  541. * const messages = {
  542. * en: {
  543. * car: ({ plural }) => plural(['car', 'cars']),
  544. * apple: ({ plural, named }) =>
  545. * plural([
  546. * 'no apples',
  547. * 'one apple',
  548. * `${named('count')} apples`
  549. * ])
  550. * }
  551. * }
  552. * ```
  553. */
  554. plural(messages: T[]): T;
  555. /**
  556. * Resolve linked message.
  557. *
  558. * @param key - A message key
  559. * @param modifier - A modifier
  560. *
  561. * @returns A resolve message.
  562. */
  563. linked(key: Path, modifier?: string): MessageType<T>;
  564. /**
  565. * Overloaded `linked`
  566. *
  567. * @param key - A message key
  568. * @param modifier - A modifier
  569. * @param type - A message type
  570. *
  571. * @returns A resolve message.
  572. */
  573. linked(key: Path, modifier?: string, type?: string): MessageType<T>;
  574. /**
  575. * Overloaded `linked`
  576. *
  577. * @param key - A message key
  578. * @param optoins - An {@link LinkedOptions | linked options}
  579. *
  580. * @returns A resolve message.
  581. */
  582. linked(key: Path, optoins?: LinkedOptions): MessageType<T>;
  583. /* Excluded from this release type: message */
  584. /**
  585. * The message type to be handled by the message function.
  586. *
  587. * @remarks
  588. * Usually `text`, you need to return **string** in message function.
  589. */
  590. type: string;
  591. /* Excluded from this release type: interpolate */
  592. /* Excluded from this release type: normalize */
  593. /**
  594. * The message values.
  595. *
  596. * @remarks
  597. * The message values are the argument values passed from translation fucntion, such as `$t`, `t`, or `translate`.
  598. *
  599. * @example
  600. * vue-i18n `$t` (or `t`) case:
  601. * ```html
  602. * <p>{{ $t('greeting', { name: 'DIO' }) }}</p> <!-- `{ name: 'DIO' }` is message vlaues -->
  603. * ```
  604. *
  605. * `@intlify/core` (`@intlify/core-base`) `translate` case:
  606. * ```js
  607. * translate(context, 'foo.bar', ['dio']) // `['dio']` is message values
  608. * ```
  609. */
  610. values: Record<string, unknown>;
  611. }
  612. export declare interface MessageContextOptions<T = string, N = {}> {
  613. parent?: MessageContext<T>;
  614. locale?: string;
  615. list?: unknown[];
  616. named?: NamedValue<N>;
  617. modifiers?: LinkedModifiers<T>;
  618. pluralIndex?: number;
  619. pluralRules?: PluralizationRules;
  620. messages?: MessageFunctions<T> | MessageResolveFunction<T>;
  621. processor?: MessageProcessor<T>;
  622. }
  623. /**
  624. * The Message Function.
  625. *
  626. * @param ctx - A {@link MessageContext}
  627. *
  628. * @return A resolved format message, that is string type basically.
  629. *
  630. * @VueI18nGeneral
  631. */
  632. export declare type MessageFunction<T = string> = MessageFunctionCallable | MessageFunctionInternal<T>;
  633. export declare type MessageFunctionCallable = <T = string>(ctx: MessageContext<T>) => MessageFunctionReturn<T>;
  634. export declare type MessageFunctionInternal<T = string> = {
  635. (ctx: MessageContext<T>): MessageFunctionReturn<T>;
  636. key?: string;
  637. locale?: string;
  638. source?: string;
  639. };
  640. /** @VueI18nGeneral */
  641. export declare type MessageFunctionReturn<T = string> = T extends string ? MessageType<T> : MessageType<T>[];
  642. export declare type MessageFunctions<T = string> = Record<string, MessageFunction<T>>;
  643. export declare type MessageInterpolate<T = string> = (val: unknown) => MessageType<T>;
  644. export declare type MessageNormalize<T = string> = (values: MessageType<T>[]) => MessageFunctionReturn<T>;
  645. export declare interface MessageProcessor<T = string> {
  646. type?: string;
  647. interpolate?: MessageInterpolate<T>;
  648. normalize?: MessageNormalize<T>;
  649. }
  650. export declare type MessageResolveFunction<T = string> = (key: string) => MessageFunction<T>;
  651. /** @VueI18nGeneral */
  652. export declare type MessageResolver = (obj: unknown, path: Path) => PathValue;
  653. export declare type MessageType<T = string> = T extends string ? string : StringConvertable<T>;
  654. export declare interface MetaInfo {
  655. [field: string]: unknown;
  656. }
  657. export declare const MISSING_RESOLVE_VALUE = "";
  658. /** @VueI18nGeneral */
  659. export declare type NamedValue<T = {}> = T & Record<string, unknown>;
  660. export declare const NOT_REOSLVED = -1;
  661. /**
  662. * `number` function overloads
  663. */
  664. export declare function number<Context extends CoreContext<Message, {}, {}, {}>, Message = string>(context: Context, value: number): string | number | Intl.NumberFormatPart[];
  665. export declare function number<Context extends CoreContext<Message, {}, {}, {}>, Value extends number = number, Key extends string = string, ResourceKeys extends PickupFormatKeys<Context['numberFormats']> = PickupFormatKeys<Context['numberFormats']>, Message = string>(context: Context, value: Value, keyOrOptions: Key | ResourceKeys | NumberOptions<Key | ResourceKeys, Context['locale']>): string | number | Intl.NumberFormatPart[];
  666. export declare function number<Context extends CoreContext<Message, {}, {}, {}>, Value extends number = number, Key extends string = string, ResourceKeys extends PickupFormatKeys<Context['numberFormats']> = PickupFormatKeys<Context['numberFormats']>, Message = string>(context: Context, value: Value, keyOrOptions: Key | ResourceKeys | NumberOptions<Key | ResourceKeys, Context['locale']>, locale: Context['locale']): string | number | Intl.NumberFormatPart[];
  667. export declare function number<Context extends CoreContext<Message, {}, {}, {}>, Value extends number = number, Key extends string = string, ResourceKeys extends PickupFormatKeys<Context['numberFormats']> = PickupFormatKeys<Context['numberFormats']>, Message = string>(context: Context, value: Value, keyOrOptions: Key | ResourceKeys | NumberOptions<Key | ResourceKeys, Context['locale']>, override: Intl.NumberFormatOptions): string | number | Intl.NumberFormatPart[];
  668. export declare function number<Context extends CoreContext<Message, {}, {}, {}>, Value extends number = number, Key extends string = string, ResourceKeys extends PickupFormatKeys<Context['numberFormats']> = PickupFormatKeys<Context['numberFormats']>, Message = string>(context: Context, value: Value, keyOrOptions: Key | ResourceKeys | NumberOptions<Key | ResourceKeys, Context['locale']>, locale: Context['locale'], override: Intl.NumberFormatOptions): string | number | Intl.NumberFormatPart[];
  669. /* Excluded from this release type: NUMBER_FORMAT_OPTIONS_KEYS */
  670. export declare type NumberFormat = {
  671. [key: string]: NumberFormatOptions;
  672. };
  673. export declare type NumberFormatOptions = Intl.NumberFormatOptions | SpecificNumberFormatOptions | CurrencyNumberFormatOptions;
  674. export declare type NumberFormats<Schema = NumberFormat, Locales = Locale> = LocaleRecord<UnionToTuple<Locales>, Schema>;
  675. export declare type NumberFormatToPartsResult = {
  676. [index: number]: FormattedNumberPart;
  677. };
  678. /**
  679. * # number
  680. *
  681. * ## usages
  682. * // for example `context.numberFormats` below
  683. * 'en-US': {
  684. * 'currency': {
  685. * style: 'currency', currency: 'USD', currencyDisplay: 'symbol'
  686. * }
  687. * },
  688. * 'ja-JP: { ... }
  689. *
  690. * // value only
  691. * number(context, value)
  692. *
  693. * // key argument
  694. * number(context, value, 'currency')
  695. *
  696. * // key & locale argument
  697. * number(context, value, 'currency', 'ja-JP')
  698. *
  699. * // object sytle argument
  700. * number(context, value, { key: 'currency', locale: 'ja-JP' })
  701. *
  702. * // suppress localize miss warning option, override context.missingWarn
  703. * number(context, value, { key: 'currency', locale: 'ja-JP', missingWarn: false })
  704. *
  705. * // suppress localize fallback warning option, override context.fallbackWarn
  706. * number(context, value, { key: 'currency', locale: 'ja-JP', fallbackWarn: false })
  707. *
  708. * // if you specify `part` options, you can get an array of objects containing the formatted number in parts
  709. * number(context, value, { key: 'currenty', part: true })
  710. *
  711. * // orverride context.numberFormats[locale] options with functino options
  712. * number(cnotext, value, 'currency', { year: '2-digit' })
  713. * number(cnotext, value, 'currency', 'ja-JP', { year: '2-digit' })
  714. * number(context, value, { key: 'currenty', locale: 'ja-JP', part: true, year: '2-digit'})
  715. */
  716. /**
  717. * Number Options
  718. *
  719. * @remarks
  720. * Options for Number formatting API
  721. *
  722. * @VueI18nGeneral
  723. */
  724. export declare interface NumberOptions<Key = string, Locales = Locale> extends Intl.NumberFormatOptions, LocaleOptions<Locales> {
  725. /**
  726. * @remarks
  727. * The target format key
  728. */
  729. key?: Key;
  730. /**
  731. * @remarks
  732. * Whether suppress warnings outputted when localization fails
  733. */
  734. missingWarn?: boolean;
  735. /**
  736. * @remarks
  737. * Whether do resolve on format keys when your language lacks a formatting for a key
  738. */
  739. fallbackWarn?: boolean;
  740. /**
  741. * @remarks
  742. * Whether to use [Intel.NumberFormat#formatToParts](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts)
  743. */
  744. part?: boolean;
  745. }
  746. /**
  747. * Parse a string path into an array of segments
  748. */
  749. export declare function parse(path: Path): string[] | undefined;
  750. /* Excluded from this release type: parseDateTimeArgs */
  751. /* Excluded from this release type: parseNumberArgs */
  752. /* Excluded from this release type: parseTranslateArgs */
  753. /** @VueI18nGeneral */
  754. export declare type Path = string;
  755. /** @VueI18nGeneral */
  756. export declare type PathValue = string | number | boolean | Function | null | {
  757. [key: string]: PathValue;
  758. } | PathValue[];
  759. export declare type PickupFallbackLocales<T extends any[]> = T[number] | `${T[number]}!`;
  760. export declare type PickupFormatKeys<T extends Record<string, any>, K = keyof T> = K extends string ? ResourceFormatPath<T[K]> : never;
  761. export declare type PickupFormatPathKeys<T extends object> = ResourceFormatPath<T>;
  762. export declare type PickupKeys<T extends Record<string, any>, K = keyof T> = K extends string ? ResourcePath<T[K]> : never;
  763. export declare type PickupLocales<T extends Record<string, any>, K = keyof T> = K extends string ? K : never;
  764. export declare type PickupPaths<T extends object> = ResourcePath<T>;
  765. export declare type PluralizationProps = {
  766. n?: number;
  767. count?: number;
  768. };
  769. export declare type PluralizationRule = (choice: number, choicesLength: number, orgRule?: PluralizationRule) => number;
  770. /** @VueI18nGeneral */
  771. export declare type PluralizationRules = {
  772. [locale: string]: PluralizationRule;
  773. };
  774. /** @VueI18nGeneral */
  775. export declare type PostTranslationHandler<Message = string> = (translated: MessageFunctionReturn<Message>, key: string) => MessageFunctionReturn<Message>;
  776. /**
  777. * Register the locale fallbacker
  778. *
  779. * @param fallbacker - A {@link LocaleFallbacker} function
  780. *
  781. * @VueI18nGeneral
  782. */
  783. export declare function registerLocaleFallbacker(fallbacker: LocaleFallbacker): void;
  784. export declare function registerMessageCompiler<Message>(compiler: MessageCompiler<Message, string | ResourceNode>): void;
  785. /**
  786. * Register the message resolver
  787. *
  788. * @param resolver - A {@link MessageResolver} function
  789. *
  790. * @VueI18nGeneral
  791. */
  792. export declare function registerMessageResolver(resolver: MessageResolver): void;
  793. export declare type RemovedIndexResources<T> = RemoveIndexSignature<{
  794. [K in keyof T]: T[K];
  795. }>;
  796. export declare type RemoveIndexSignature<T> = {
  797. [K in keyof T as string extends K ? never : number extends K ? never : K]: T[K];
  798. };
  799. /* Excluded from this release type: resolveLocale */
  800. /**
  801. * message resolver
  802. *
  803. * @remarks
  804. * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.
  805. *
  806. * @param obj - A target object to be resolved with path
  807. * @param path - A {@link Path | path} to resolve the value of message
  808. *
  809. * @returns A resolved {@link PathValue | path value}
  810. *
  811. * @VueI18nGeneral
  812. */
  813. export declare function resolveValue(obj: unknown, path: Path): PathValue;
  814. /**
  815. * key-value message resolver
  816. *
  817. * @remarks
  818. * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved
  819. *
  820. * @param obj - A target object to be resolved with path
  821. * @param path - A {@link Path | path} to resolve the value of message
  822. *
  823. * @returns A resolved {@link PathValue | path value}
  824. *
  825. * @VueI18nGeneral
  826. */
  827. export declare function resolveWithKeyValue(obj: unknown, path: Path): PathValue;
  828. export declare type ResourceFormatPath<T> = _ResourceFormatPath<T> extends string | keyof T ? _ResourceFormatPath<T> : keyof T;
  829. declare type _ResourceFormatPath<T> = __ResourceFormatPath<T, keyof T> | keyof T;
  830. export { ResourceNode }
  831. export declare type ResourcePath<T> = _ResourcePath<T> extends string | keyof T ? _ResourcePath<T> : keyof T;
  832. export declare type _ResourcePath<T> = __ResourcePath<T, keyof T> | keyof T;
  833. export declare type ResourceValue<T, P extends ResourcePath<T>> = P extends `${infer Key}.${infer Rest}` ? Key extends keyof T ? Rest extends ResourcePath<T[Key]> ? ResourceValue<T[Key], Rest> : never : never : P extends keyof T ? T[P] : never;
  834. export declare type SchemaParams<T, Message = string> = T extends readonly any[] ? {
  835. message: First<T>;
  836. datetime: DateTimeFormat;
  837. number: NumberFormat;
  838. } : T extends {
  839. message?: infer M;
  840. datetime?: infer D;
  841. number?: infer N;
  842. } ? {
  843. message: M extends LocaleMessage<Message> ? M : LocaleMessage<Message>;
  844. datetime: D extends DateTimeFormat ? D : DateTimeFormat;
  845. number: N extends NumberFormat ? N : NumberFormat;
  846. } : {
  847. message: LocaleMessage<Message>;
  848. datetime: DateTimeFormat;
  849. number: NumberFormat;
  850. };
  851. export declare const setAdditionalMeta: (meta: MetaInfo | null) => void;
  852. export declare function setDevToolsHook(hook: IntlifyDevToolsEmitter | null): void;
  853. export declare const setFallbackContext: (context: CoreContext | null) => void;
  854. export declare interface SpecificDateTimeFormatOptions extends Intl.DateTimeFormatOptions {
  855. year?: DateTimeDigital;
  856. month?: DateTimeDigital | DateTimeHumanReadable;
  857. day?: DateTimeDigital;
  858. hour?: DateTimeDigital;
  859. minute?: DateTimeDigital;
  860. second?: DateTimeDigital;
  861. weekday?: DateTimeHumanReadable;
  862. era?: DateTimeHumanReadable;
  863. timeZoneName?: 'long' | 'short';
  864. localeMatcher?: LocaleMatcher;
  865. formatMatcher?: FormatMatcher;
  866. }
  867. export declare interface SpecificNumberFormatOptions extends Intl.NumberFormatOptions {
  868. style?: 'decimal' | 'percent';
  869. currency?: string;
  870. currencyDisplay?: CurrencyDisplay;
  871. localeMatcher?: LocaleMatcher;
  872. formatMatcher?: FormatMatcher;
  873. }
  874. declare type StringConvertable<T> = ExtractToStringKey<T> extends never ? unknown : ExtractToStringFunction<T> extends (...args: any) => string ? T : unknown;
  875. /**
  876. * TODO:
  877. * this type should be used (refactored) at `translate` type definition
  878. * (Unfortunately, using this type will result in key completion failure due to type mismatch...)
  879. */
  880. /**
  881. * `translate` function overloads
  882. */
  883. export declare function translate<Context extends CoreContext<Message>, Key extends string = string, DefinedLocaleMessage extends RemovedIndexResources<DefineCoreLocaleMessage> = RemovedIndexResources<DefineCoreLocaleMessage>, CoreMessages = IsEmptyObject<DefinedLocaleMessage> extends false ? PickupPaths<{
  884. [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K];
  885. }> : never, ContextMessages = IsEmptyObject<Context['messages']> extends false ? PickupKeys<Context['messages']> : never, ResourceKeys extends CoreMessages | ContextMessages = IsNever<CoreMessages> extends false ? IsNever<ContextMessages> extends false ? CoreMessages | ContextMessages : CoreMessages : IsNever<ContextMessages> extends false ? ContextMessages : never, Message = string>(context: Context, key: Key | ResourceKeys | number | MessageFunction<Message>, plural: number): MessageFunctionReturn<Message> | number;
  886. export declare function translate<Context extends CoreContext<Message, {}, {}, {}>, Key extends string = string, DefinedLocaleMessage extends RemovedIndexResources<DefineCoreLocaleMessage> = RemovedIndexResources<DefineCoreLocaleMessage>, CoreMessages = IsEmptyObject<DefinedLocaleMessage> extends false ? PickupPaths<{
  887. [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K];
  888. }> : never, ContextMessages = IsEmptyObject<Context['messages']> extends false ? PickupKeys<Context['messages']> : never, ResourceKeys extends CoreMessages | ContextMessages = IsNever<CoreMessages> extends false ? IsNever<ContextMessages> extends false ? CoreMessages | ContextMessages : CoreMessages : IsNever<ContextMessages> extends false ? ContextMessages : never, Message = string>(context: Context, key: Key | ResourceKeys | number | MessageFunction<Message>): MessageFunctionReturn<Message> | number;
  889. export declare function translate<Context extends CoreContext<Message, {}, {}, {}>, Key extends string = string, DefinedLocaleMessage extends RemovedIndexResources<DefineCoreLocaleMessage> = RemovedIndexResources<DefineCoreLocaleMessage>, CoreMessages = IsEmptyObject<DefinedLocaleMessage> extends false ? PickupPaths<{
  890. [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K];
  891. }> : never, ContextMessages = IsEmptyObject<Context['messages']> extends false ? PickupKeys<Context['messages']> : never, ResourceKeys extends CoreMessages | ContextMessages = IsNever<CoreMessages> extends false ? IsNever<ContextMessages> extends false ? CoreMessages | ContextMessages : CoreMessages : IsNever<ContextMessages> extends false ? ContextMessages : never, Message = string>(context: Context, key: Key | ResourceKeys | number | MessageFunction<Message>, plural: number): MessageFunctionReturn<Message> | number;
  892. export declare function translate<Context extends CoreContext<Message, {}, {}, {}>, Key extends string = string, DefinedLocaleMessage extends RemovedIndexResources<DefineCoreLocaleMessage> = RemovedIndexResources<DefineCoreLocaleMessage>, CoreMessages = IsEmptyObject<DefinedLocaleMessage> extends false ? PickupPaths<{
  893. [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K];
  894. }> : never, ContextMessages = IsEmptyObject<Context['messages']> extends false ? PickupKeys<Context['messages']> : never, ResourceKeys extends CoreMessages | ContextMessages = IsNever<CoreMessages> extends false ? IsNever<ContextMessages> extends false ? CoreMessages | ContextMessages : CoreMessages : IsNever<ContextMessages> extends false ? ContextMessages : never, Message = string>(context: Context, key: Key | ResourceKeys | number | MessageFunction<Message>, plural: number, options: TranslateOptions<Context['locale']>): MessageFunctionReturn<Message> | number;
  895. export declare function translate<Context extends CoreContext<Message, {}, {}, {}>, Key extends string = string, DefinedLocaleMessage extends RemovedIndexResources<DefineCoreLocaleMessage> = RemovedIndexResources<DefineCoreLocaleMessage>, CoreMessages = IsEmptyObject<DefinedLocaleMessage> extends false ? PickupPaths<{
  896. [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K];
  897. }> : never, ContextMessages = IsEmptyObject<Context['messages']> extends false ? PickupKeys<Context['messages']> : never, ResourceKeys extends CoreMessages | ContextMessages = IsNever<CoreMessages> extends false ? IsNever<ContextMessages> extends false ? CoreMessages | ContextMessages : CoreMessages : IsNever<ContextMessages> extends false ? ContextMessages : never, Message = string>(context: Context, key: Key | ResourceKeys | number | MessageFunction<Message>, defaultMsg: string): MessageFunctionReturn<Message> | number;
  898. export declare function translate<Context extends CoreContext<Message, {}, {}, {}>, Key extends string = string, DefinedLocaleMessage extends RemovedIndexResources<DefineCoreLocaleMessage> = RemovedIndexResources<DefineCoreLocaleMessage>, CoreMessages = IsEmptyObject<DefinedLocaleMessage> extends false ? PickupPaths<{
  899. [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K];
  900. }> : never, ContextMessages = IsEmptyObject<Context['messages']> extends false ? PickupKeys<Context['messages']> : never, ResourceKeys extends CoreMessages | ContextMessages = IsNever<CoreMessages> extends false ? IsNever<ContextMessages> extends false ? CoreMessages | ContextMessages : CoreMessages : IsNever<ContextMessages> extends false ? ContextMessages : never, Message = string>(context: Context, key: Key | ResourceKeys | number | MessageFunction<Message>, defaultMsg: string, options: TranslateOptions<Context['locale']>): MessageFunctionReturn<Message> | number;
  901. export declare function translate<Context extends CoreContext<Message, {}, {}, {}>, Key extends string = string, DefinedLocaleMessage extends RemovedIndexResources<DefineCoreLocaleMessage> = RemovedIndexResources<DefineCoreLocaleMessage>, CoreMessages = IsEmptyObject<DefinedLocaleMessage> extends false ? PickupPaths<{
  902. [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K];
  903. }> : never, ContextMessages = IsEmptyObject<Context['messages']> extends false ? PickupKeys<Context['messages']> : never, ResourceKeys extends CoreMessages | ContextMessages = IsNever<CoreMessages> extends false ? IsNever<ContextMessages> extends false ? CoreMessages | ContextMessages : CoreMessages : IsNever<ContextMessages> extends false ? ContextMessages : never, Message = string>(context: Context, key: Key | ResourceKeys | number | MessageFunction<Message>, list: unknown[]): MessageFunctionReturn<Message> | number;
  904. export declare function translate<Context extends CoreContext<Message, {}, {}, {}>, Key extends string = string, DefinedLocaleMessage extends RemovedIndexResources<DefineCoreLocaleMessage> = RemovedIndexResources<DefineCoreLocaleMessage>, CoreMessages = IsEmptyObject<DefinedLocaleMessage> extends false ? PickupPaths<{
  905. [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K];
  906. }> : never, ContextMessages = IsEmptyObject<Context['messages']> extends false ? PickupKeys<Context['messages']> : never, ResourceKeys extends CoreMessages | ContextMessages = IsNever<CoreMessages> extends false ? IsNever<ContextMessages> extends false ? CoreMessages | ContextMessages : CoreMessages : IsNever<ContextMessages> extends false ? ContextMessages : never, Message = string>(context: Context, key: Key | ResourceKeys | number | MessageFunction<Message>, list: unknown[], plural: number): MessageFunctionReturn<Message> | number;
  907. export declare function translate<Context extends CoreContext<Message, {}, {}, {}>, Key extends string = string, DefinedLocaleMessage extends RemovedIndexResources<DefineCoreLocaleMessage> = RemovedIndexResources<DefineCoreLocaleMessage>, CoreMessages = IsEmptyObject<DefinedLocaleMessage> extends false ? PickupPaths<{
  908. [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K];
  909. }> : never, ContextMessages = IsEmptyObject<Context['messages']> extends false ? PickupKeys<Context['messages']> : never, ResourceKeys extends CoreMessages | ContextMessages = IsNever<CoreMessages> extends false ? IsNever<ContextMessages> extends false ? CoreMessages | ContextMessages : CoreMessages : IsNever<ContextMessages> extends false ? ContextMessages : never, Message = string>(context: Context, key: Key | ResourceKeys | number | MessageFunction<Message>, list: unknown[], defaultMsg: string): MessageFunctionReturn<Message> | number;
  910. export declare function translate<Context extends CoreContext<Message, {}, {}, {}>, Key extends string = string, DefinedLocaleMessage extends RemovedIndexResources<DefineCoreLocaleMessage> = RemovedIndexResources<DefineCoreLocaleMessage>, CoreMessages = IsEmptyObject<DefinedLocaleMessage> extends false ? PickupPaths<{
  911. [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K];
  912. }> : never, ContextMessages = IsEmptyObject<Context['messages']> extends false ? PickupKeys<Context['messages']> : never, ResourceKeys extends CoreMessages | ContextMessages = IsNever<CoreMessages> extends false ? IsNever<ContextMessages> extends false ? CoreMessages | ContextMessages : CoreMessages : IsNever<ContextMessages> extends false ? ContextMessages : never, Message = string>(context: Context, key: Key | ResourceKeys | number | MessageFunction<Message>, list: unknown[], options: TranslateOptions<Context['locale']>): MessageFunctionReturn<Message> | number;
  913. export declare function translate<Context extends CoreContext<Message, {}, {}, {}>, Key extends string = string, DefinedLocaleMessage extends RemovedIndexResources<DefineCoreLocaleMessage> = RemovedIndexResources<DefineCoreLocaleMessage>, CoreMessages = IsEmptyObject<DefinedLocaleMessage> extends false ? PickupPaths<{
  914. [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K];
  915. }> : never, ContextMessages = IsEmptyObject<Context['messages']> extends false ? PickupKeys<Context['messages']> : never, ResourceKeys extends CoreMessages | ContextMessages = IsNever<CoreMessages> extends false ? IsNever<ContextMessages> extends false ? CoreMessages | ContextMessages : CoreMessages : IsNever<ContextMessages> extends false ? ContextMessages : never, Message = string>(context: Context, key: Key | ResourceKeys | number | MessageFunction<Message>, named: NamedValue): MessageFunctionReturn<Message> | number;
  916. export declare function translate<Context extends CoreContext<Message, {}, {}, {}>, Key extends string = string, DefinedLocaleMessage extends RemovedIndexResources<DefineCoreLocaleMessage> = RemovedIndexResources<DefineCoreLocaleMessage>, CoreMessages = IsEmptyObject<DefinedLocaleMessage> extends false ? PickupPaths<{
  917. [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K];
  918. }> : never, ContextMessages = IsEmptyObject<Context['messages']> extends false ? PickupKeys<Context['messages']> : never, ResourceKeys extends CoreMessages | ContextMessages = IsNever<CoreMessages> extends false ? IsNever<ContextMessages> extends false ? CoreMessages | ContextMessages : CoreMessages : IsNever<ContextMessages> extends false ? ContextMessages : never, Message = string>(context: Context, key: Key | ResourceKeys | number | MessageFunction<Message>, named: NamedValue, plural: number): MessageFunctionReturn<Message> | number;
  919. export declare function translate<Context extends CoreContext<Message, {}, {}, {}>, Key extends string = string, DefinedLocaleMessage extends RemovedIndexResources<DefineCoreLocaleMessage> = RemovedIndexResources<DefineCoreLocaleMessage>, CoreMessages = IsEmptyObject<DefinedLocaleMessage> extends false ? PickupPaths<{
  920. [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K];
  921. }> : never, ContextMessages = IsEmptyObject<Context['messages']> extends false ? PickupKeys<Context['messages']> : never, ResourceKeys extends CoreMessages | ContextMessages = IsNever<CoreMessages> extends false ? IsNever<ContextMessages> extends false ? CoreMessages | ContextMessages : CoreMessages : IsNever<ContextMessages> extends false ? ContextMessages : never, Message = string>(context: Context, key: Key | ResourceKeys | number | MessageFunction<Message>, named: NamedValue, defaultMsg: string): MessageFunctionReturn<Message> | number;
  922. export declare function translate<Context extends CoreContext<Message, {}, {}, {}>, Key extends string = string, DefinedLocaleMessage extends RemovedIndexResources<DefineCoreLocaleMessage> = RemovedIndexResources<DefineCoreLocaleMessage>, CoreMessages = IsEmptyObject<DefinedLocaleMessage> extends false ? PickupPaths<{
  923. [K in keyof DefinedLocaleMessage]: DefinedLocaleMessage[K];
  924. }> : never, ContextMessages = IsEmptyObject<Context['messages']> extends false ? PickupKeys<Context['messages']> : never, ResourceKeys extends CoreMessages | ContextMessages = IsNever<CoreMessages> extends false ? IsNever<ContextMessages> extends false ? CoreMessages | ContextMessages : CoreMessages : IsNever<ContextMessages> extends false ? ContextMessages : never, Message = string>(context: Context, key: Key | ResourceKeys | number | MessageFunction<Message>, named: NamedValue, options: TranslateOptions<Context['locale']>): MessageFunctionReturn<Message> | number;
  925. export declare const translateDevTools: (payloads: IntlifyDevToolsHookPayloads[IntlifyDevToolsHooks]) => void | null;
  926. /**
  927. * # translate
  928. *
  929. * ## usages:
  930. * // for example, locale messages key
  931. * { 'foo.bar': 'hi {0} !' or 'hi {name} !' }
  932. *
  933. * // no argument, context & path only
  934. * translate(context, 'foo.bar')
  935. *
  936. * // list argument
  937. * translate(context, 'foo.bar', ['kazupon'])
  938. *
  939. * // named argument
  940. * translate(context, 'foo.bar', { name: 'kazupon' })
  941. *
  942. * // plural choice number
  943. * translate(context, 'foo.bar', 2)
  944. *
  945. * // plural choice number with name argument
  946. * translate(context, 'foo.bar', { name: 'kazupon' }, 2)
  947. *
  948. * // default message argument
  949. * translate(context, 'foo.bar', 'this is default message')
  950. *
  951. * // default message with named argument
  952. * translate(context, 'foo.bar', { name: 'kazupon' }, 'Hello {name} !')
  953. *
  954. * // use key as default message
  955. * translate(context, 'hi {0} !', ['kazupon'], { default: true })
  956. *
  957. * // locale option, override context.locale
  958. * translate(context, 'foo.bar', { name: 'kazupon' }, { locale: 'ja' })
  959. *
  960. * // suppress localize miss warning option, override context.missingWarn
  961. * translate(context, 'foo.bar', { name: 'kazupon' }, { missingWarn: false })
  962. *
  963. * // suppress localize fallback warning option, override context.fallbackWarn
  964. * translate(context, 'foo.bar', { name: 'kazupon' }, { fallbackWarn: false })
  965. *
  966. * // escape parameter option, override context.escapeParameter
  967. * translate(context, 'foo.bar', { name: 'kazupon' }, { escapeParameter: true })
  968. */
  969. /**
  970. * Translate Options
  971. *
  972. * @remarks
  973. * Options for Translation API
  974. *
  975. * @VueI18nGeneral
  976. */
  977. export declare interface TranslateOptions<Locales = Locale> extends LocaleOptions<Locales> {
  978. /**
  979. * @remarks
  980. * List interpolation
  981. */
  982. list?: unknown[];
  983. /**
  984. * @remarks
  985. * Named interpolation
  986. */
  987. named?: NamedValue;
  988. /**
  989. * @remarks
  990. * Plulralzation choice number
  991. */
  992. plural?: number;
  993. /**
  994. * @remarks
  995. * Default message when is occurred translation missing
  996. */
  997. default?: string | boolean;
  998. /**
  999. * @remarks
  1000. * Whether suppress warnings outputted when localization fails
  1001. */
  1002. missingWarn?: boolean;
  1003. /**
  1004. * @remarks
  1005. * Whether do template interpolation on translation keys when your language lacks a translation for a key
  1006. */
  1007. fallbackWarn?: boolean;
  1008. /**
  1009. * @remarks
  1010. * Whether to escape parameters for list or named interpolation values.
  1011. * When enabled, this option:
  1012. * - Escapes HTML special characters (`<`, `>`, `"`, `'`, `&`, `/`, `=`) in interpolation parameters
  1013. * - Sanitizes the final translated HTML to prevent XSS attacks by:
  1014. * - Escaping dangerous characters in HTML attribute values
  1015. * - Neutralizing event handler attributes (onclick, onerror, etc.)
  1016. * - Disabling javascript: URLs in href, src, action, formaction, and style attributes
  1017. *
  1018. * @defaultValue false
  1019. * @see [HTML Message - Using the escapeParameter option](https://vue-i18n.intlify.dev/guide/essentials/syntax.html#using-the-escapeparameter-option)
  1020. */
  1021. escapeParameter?: boolean;
  1022. /**
  1023. * @remarks
  1024. * Whether the message has been resolved
  1025. */
  1026. resolvedMessage?: boolean;
  1027. }
  1028. export declare type UnionToIntersection<U> = (U extends any ? (arg: U) => void : never) extends (arg: infer I) => void ? I : never;
  1029. export declare type UnionToTuple<U, Last = LastInUnion<U>> = [U] extends [never] ? [] : [...UnionToTuple<Exclude<U, Last>>, Last];
  1030. /* Excluded from this release type: updateFallbackLocale */
  1031. /* Excluded from this release type: VERSION */
  1032. declare type VueDevToolsEmitter = Emittable<VueDevToolsEmitterEvents>;
  1033. declare type VueDevToolsEmitterEvents = {
  1034. [VueDevToolsTimelineEvents.COMPILE_ERROR]: VueDevToolsTimelineEventPayloads[VueDevToolsTimelineEvents.COMPILE_ERROR];
  1035. [VueDevToolsTimelineEvents.MISSING]: VueDevToolsTimelineEventPayloads[VueDevToolsTimelineEvents.MISSING];
  1036. [VueDevToolsTimelineEvents.FALBACK]: VueDevToolsTimelineEventPayloads[VueDevToolsTimelineEvents.FALBACK];
  1037. [VueDevToolsTimelineEvents.MESSAGE_RESOLVE]: VueDevToolsTimelineEventPayloads[VueDevToolsTimelineEvents.MESSAGE_RESOLVE];
  1038. [VueDevToolsTimelineEvents.MESSAGE_COMPILATION]: VueDevToolsTimelineEventPayloads[VueDevToolsTimelineEvents.MESSAGE_COMPILATION];
  1039. [VueDevToolsTimelineEvents.MESSAGE_EVALUATION]: VueDevToolsTimelineEventPayloads[VueDevToolsTimelineEvents.MESSAGE_EVALUATION];
  1040. };
  1041. declare type VueDevToolsTimelineEventPayloads = {
  1042. [VueDevToolsTimelineEvents.COMPILE_ERROR]: {
  1043. message: string;
  1044. error: string;
  1045. start?: number;
  1046. end?: number;
  1047. groupId?: string;
  1048. };
  1049. [VueDevToolsTimelineEvents.MISSING]: {
  1050. locale: Locale_2;
  1051. key: Path_2;
  1052. type: CoreMissingType_2;
  1053. groupId?: string;
  1054. };
  1055. [VueDevToolsTimelineEvents.FALBACK]: {
  1056. key: Path_2;
  1057. type: CoreMissingType_2;
  1058. from?: Locale_2;
  1059. to: Locale_2 | 'global';
  1060. groupId?: string;
  1061. };
  1062. [VueDevToolsTimelineEvents.MESSAGE_RESOLVE]: {
  1063. type: VueDevToolsTimelineEvents.MESSAGE_RESOLVE;
  1064. key: Path_2;
  1065. message: PathValue_2;
  1066. time: number;
  1067. groupId?: string;
  1068. };
  1069. [VueDevToolsTimelineEvents.MESSAGE_COMPILATION]: {
  1070. type: VueDevToolsTimelineEvents.MESSAGE_COMPILATION;
  1071. message: string | ResourceNode_2 | MessageFunction_2;
  1072. time: number;
  1073. groupId?: string;
  1074. };
  1075. [VueDevToolsTimelineEvents.MESSAGE_EVALUATION]: {
  1076. type: VueDevToolsTimelineEvents.MESSAGE_EVALUATION;
  1077. value: unknown;
  1078. time: number;
  1079. groupId?: string;
  1080. };
  1081. };
  1082. declare const enum VueDevToolsTimelineEvents {
  1083. COMPILE_ERROR = "compile-error",
  1084. MISSING = "missing",
  1085. FALBACK = "fallback",
  1086. MESSAGE_RESOLVE = "message-resolve",
  1087. MESSAGE_COMPILATION = "message-compilation",
  1088. MESSAGE_EVALUATION = "message-evaluation"
  1089. }
  1090. export { }