core-base.d.ts 56 KB

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