156 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			156 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| 
								 | 
							
								declare var Intl: any;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								declare type Path = string;
							 | 
						||
| 
								 | 
							
								declare type Locale = string;
							 | 
						||
| 
								 | 
							
								declare type FallbackLocale = string | string[] | false | { [locale: string]: string[] };
							 | 
						||
| 
								 | 
							
								declare type LocaleMessage = string | 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)
							 | 
						||
| 
								 | 
							
								};
							 |