123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- declare var Intl: any;
- declare type Path = string;
- declare type Locale = string;
- declare type MessageContext = {
- list: (index: number) => mixed,
- named: (key: string) => mixed
- }
- declare type MessageFunction = (ctx: MessageContext) => string
- declare type FallbackLocale = string | string[] | false | { [locale: string]: string[] };
- declare type LocaleMessage = string | MessageFunction | LocaleMessageObject | LocaleMessageArray;
- declare type LocaleMessageObject = { [key: Path]: LocaleMessage };
- declare type LocaleMessageArray = Array<LocaleMessage>;
- declare type LocaleMessages = { [key: Locale]: LocaleMessageObject };
- // This options is the same as Intl.DateTimeFormat constructor options:
- // http://www.ecma-international.org/ecma-402/2.0/#sec-intl-datetimeformat-constructor
- declare type DateTimeFormatOptions = {
- year?: 'numeric' | '2-digit',
- month?: 'numeric' | '2-digit' | 'narrow' | 'short' | 'long',
- day?: 'numeric' | '2-digit',
- hour?: 'numeric' | '2-digit',
- minute?: 'numeric' | '2-digit',
- second?: 'numeric' | '2-digit',
- weekday?: 'narrow' | 'short' | 'long',
- hour12?: boolean,
- era?: 'narrow' | 'short' | 'long',
- timeZone?: string, // IANA time zone
- timeZoneName?: 'short' | 'long',
- localeMatcher?: 'lookup' | 'best fit',
- formatMatcher?: 'basic' | 'best fit'
- };
- declare type DateTimeFormat = { [key: string]: DateTimeFormatOptions };
- declare type DateTimeFormats = { [key: Locale]: DateTimeFormat };
- // This options is the same as Intl.NumberFormat constructor options:
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat
- declare type NumberFormatOptions = {
- style?: 'decimal' | 'currency' | 'percent',
- currency?: string, // ISO 4217 currency codes
- currencyDisplay?: 'symbol' | 'code' | 'name',
- useGrouping?: boolean,
- minimumIntegerDigits?: number,
- minimumFractionDigits?: number,
- maximumFractionDigits?: number,
- minimumSignificantDigits?: number,
- maximumSignificantDigits?: number,
- localeMatcher?: 'lookup' | 'best fit',
- formatMatcher?: 'basic' | 'best fit'
- };
- declare type NumberFormat = { [key: string]: NumberFormatOptions };
- declare type NumberFormats = { [key: Locale]: NumberFormat };
- declare type Modifiers = { [key: string]: (str: string) => string };
- declare type TranslateResult = string | LocaleMessages;
- declare type DateTimeFormatResult = string;
- declare type NumberFormatResult = string;
- declare type MissingHandler = (locale: Locale, key: Path, vm?: any) => string | void;
- declare type PostTranslationHandler = (str: string, key?: string) => string;
- declare type GetChoiceIndex = (choice: number, choicesLength: number) => number
- declare type ComponentInstanceCreatedListener = (newI18n: I18n, rootI18n: I18n) => void;
- declare type FormattedNumberPartType = 'currency' | 'decimal' | 'fraction' | 'group' | 'infinity' | 'integer' | 'literal' | 'minusSign' | 'nan' | 'plusSign' | 'percentSign';
- declare type FormattedNumberPart = {
- type: FormattedNumberPartType,
- value: string,
- };
- // This array is the same as Intl.NumberFormat.formatToParts() return value:
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/formatToParts#Return_value
- declare type NumberFormatToPartsResult = Array<FormattedNumberPart>;
- declare type WarnHtmlInMessageLevel = 'off' | 'warn' | 'error';
- declare type I18nOptions = {
- locale?: Locale,
- fallbackLocale?: FallbackLocale,
- messages?: LocaleMessages,
- dateTimeFormats?: DateTimeFormats,
- numberFormats?: NumberFormats,
- formatter?: Formatter,
- missing?: MissingHandler,
- modifiers?: Modifiers,
- root?: I18n, // for internal
- fallbackRoot?: boolean,
- formatFallbackMessages?: boolean,
- sync?: boolean,
- silentTranslationWarn?: boolean | RegExp,
- silentFallbackWarn?: boolean | RegExp,
- pluralizationRules?: PluralizationRules,
- preserveDirectiveContent?: boolean,
- warnHtmlInMessage?: WarnHtmlInMessageLevel,
- sharedMessages?: LocaleMessage,
- postTranslation?: PostTranslationHandler,
- componentInstanceCreatedListener?: ComponentInstanceCreatedListener,
- };
- declare type IntlAvailability = {
- dateTimeFormat: boolean,
- numberFormat: boolean
- };
- declare type PluralizationRules = {
- [lang: string]: GetChoiceIndex,
- }
- declare interface I18n {
- static install: () => void, // for Vue plugin interface
- static version: string,
- static availabilities: IntlAvailability,
- get vm (): any, // for internal
- get locale (): Locale,
- set locale (locale: Locale): void,
- get fallbackLocale (): FallbackLocale,
- set fallbackLocale (locale: FallbackLocale): void,
- get messages (): LocaleMessages,
- get dateTimeFormats (): DateTimeFormats,
- get numberFormats (): NumberFormats,
- get availableLocales (): Locale[],
- get missing (): ?MissingHandler,
- set missing (handler: MissingHandler): void,
- get formatter (): Formatter,
- set formatter (formatter: Formatter): void,
- get formatFallbackMessages (): boolean,
- set formatFallbackMessages (fallback: boolean): void,
- get silentTranslationWarn (): boolean | RegExp,
- set silentTranslationWarn (silent: boolean | RegExp): void,
- get silentFallbackWarn (): boolean | RegExp,
- set silentFallbackWarn (slient: boolean | RegExp): void,
- get pluralizationRules (): PluralizationRules,
- set pluralizationRules (rules: PluralizationRules): void,
- get preserveDirectiveContent (): boolean,
- set preserveDirectiveContent (preserve: boolean): void,
- get warnHtmlInMessage (): WarnHtmlInMessageLevel,
- set warnHtmlInMessage (level: WarnHtmlInMessageLevel): void,
- get postTranslation (): ?PostTranslationHandler,
- set postTranslation (handler: PostTranslationHandler): void,
- getLocaleMessage (locale: Locale): LocaleMessageObject,
- setLocaleMessage (locale: Locale, message: LocaleMessageObject): void,
- mergeLocaleMessage (locale: Locale, message: LocaleMessageObject): void,
- t (key: Path, ...values: any): TranslateResult,
- i (key: Path, locale: Locale, values: Object): TranslateResult,
- tc (key: Path, choice?: number, ...values: any): TranslateResult,
- te (key: Path, locale?: Locale): boolean,
- getDateTimeFormat (locale: Locale): DateTimeFormat,
- setDateTimeFormat (locale: Locale, format: DateTimeFormat): void,
- mergeDateTimeFormat (locale: Locale, format: DateTimeFormat): void,
- d (value: number | Date, ...args: any): DateTimeFormatResult,
- getNumberFormat (locale: Locale): NumberFormat,
- setNumberFormat (locale: Locale, format: NumberFormat): void,
- mergeNumberFormat (locale: Locale, format: NumberFormat): void,
- n (value: number, ...args: any): NumberFormatResult,
- getChoiceIndex: GetChoiceIndex,
- pluralizationRules: PluralizationRules,
- preserveDirectiveContent: boolean
- };
- declare interface Formatter {
- interpolate (message: string, values: any, path: string): (Array<any> | null)
- };
|