123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276 |
- import Vue, { PluginFunction } from 'vue';
- declare namespace VueI18n {
- type Path = string;
- type Locale = string;
- type FallbackLocale = string | string[] | false | { [locale: string]: string[] }
- type Values = any[] | { [key: string]: any };
- type Choice = number;
- interface MessageContext {
- list(index: number): unknown
- named(key: string): unknown
- }
- type MessageFunction = (ctx: MessageContext) => string;
- type LocaleMessage = string | MessageFunction | LocaleMessageObject | LocaleMessageArray;
- interface LocaleMessageObject { [key: string]: LocaleMessage; }
- interface LocaleMessageArray { [index: number]: LocaleMessage; }
- interface LocaleMessages { [key: string]: LocaleMessageObject; }
- type TranslateResult = string | LocaleMessages;
- type LocaleMatcher = 'lookup' | 'best-fit';
- type FormatMatcher = 'basic' | 'best-fit';
- type DateTimeHumanReadable = 'long' | 'short' | 'narrow';
- type DateTimeDigital = 'numeric' | '2-digit';
- interface SpecificDateTimeFormatOptions extends Intl.DateTimeFormatOptions {
- year?: DateTimeDigital;
- month?: DateTimeDigital | DateTimeHumanReadable;
- day?: DateTimeDigital;
- hour?: DateTimeDigital;
- minute?: DateTimeDigital;
- second?: DateTimeDigital;
- weekday?: DateTimeHumanReadable;
- era?: DateTimeHumanReadable;
- timeZoneName?: 'long' | 'short';
- localeMatcher?: LocaleMatcher;
- formatMatcher?: FormatMatcher;
- }
- type DateTimeFormatOptions = Intl.DateTimeFormatOptions | SpecificDateTimeFormatOptions;
- interface DateTimeFormat { [key: string]: DateTimeFormatOptions; }
- interface DateTimeFormats { [locale: string]: DateTimeFormat; }
- type DateTimeFormatResult = string;
- type CurrencyDisplay = 'symbol' | 'code' | 'name';
- interface SpecificNumberFormatOptions extends Intl.NumberFormatOptions {
- style?: 'decimal' | 'percent';
- currency?: string;
- currencyDisplay?: CurrencyDisplay;
- localeMatcher?: LocaleMatcher;
- formatMatcher?: FormatMatcher;
- }
- interface CurrencyNumberFormatOptions extends Intl.NumberFormatOptions {
- style: 'currency';
- currency: string; // Obligatory if style is 'currency'
- currencyDisplay?: CurrencyDisplay;
- localeMatcher?: LocaleMatcher;
- formatMatcher?: FormatMatcher;
- }
- type NumberFormatOptions = Intl.NumberFormatOptions | SpecificNumberFormatOptions | CurrencyNumberFormatOptions;
- interface NumberFormat { [key: string]: NumberFormatOptions; }
- interface NumberFormats { [locale: string]: NumberFormat; }
- type NumberFormatResult = string;
- type PluralizationRulesMap = {
- /**
- * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`
- * @param choicesLength {number} an overall amount of available choices
- * @returns a final choice index
- */
- [lang: string]: (choice: number, choicesLength: number) => number;
- };
- type Modifiers = { [key: string]: (str : string) => string };
- type FormattedNumberPartType = 'currency' | 'decimal' | 'fraction' | 'group' | 'infinity' | 'integer' | 'literal' | 'minusSign' | 'nan' | 'plusSign' | 'percentSign';
- type WarnHtmlInMessageLevel = 'off' | 'warn' | 'error';
- interface FormattedNumberPart {
- type: FormattedNumberPartType;
- value: string;
- }
- interface NumberFormatToPartsResult { [index: number]: FormattedNumberPart; }
- interface Formatter {
- interpolate(message: string, values: Values | undefined, path: string): (any[] | null);
- }
- type MissingHandler = (locale: Locale, key: Path, vm: Vue | null, values: any) => string | void;
- type PostTranslationHandler = (str: string, key?: string) => string;
- type ComponentInstanceCreatedListener = (newVm: VueI18n & IVueI18n, rootVm: VueI18n & IVueI18n) => void;
- interface IntlAvailability {
- dateTimeFormat: boolean;
- numberFormat: boolean;
- }
- // tslint:disable-next-line:interface-name
- interface I18nOptions {
- locale?: Locale;
- fallbackLocale?: FallbackLocale;
- messages?: LocaleMessages;
- dateTimeFormats?: DateTimeFormats;
- numberFormats?: NumberFormats;
- formatter?: Formatter;
- modifiers?: Modifiers,
- missing?: MissingHandler;
- fallbackRoot?: boolean;
- formatFallbackMessages?: boolean;
- sync?: boolean;
- silentTranslationWarn?: boolean | RegExp;
- silentFallbackWarn?: boolean | RegExp;
- preserveDirectiveContent?: boolean;
- pluralizationRules?: PluralizationRulesMap;
- warnHtmlInMessage?: WarnHtmlInMessageLevel;
- sharedMessages?: LocaleMessages;
- postTranslation?: PostTranslationHandler;
- componentInstanceCreatedListener?: ComponentInstanceCreatedListener;
- }
- }
- export type Path = VueI18n.Path;
- export type Locale = VueI18n.Locale;
- export type FallbackLocale = VueI18n.FallbackLocale;
- export type Values = VueI18n.Values;
- export type Choice = VueI18n.Choice;
- export type MessageContext = VueI18n.MessageContext;
- export type MessageFunction = VueI18n.MessageFunction;
- export type LocaleMessage = VueI18n.LocaleMessage;
- export type LocaleMessageObject = VueI18n.LocaleMessageObject;
- export type LocaleMessageArray = VueI18n.LocaleMessageArray;
- export type LocaleMessages = VueI18n.LocaleMessages;
- export type TranslateResult = VueI18n.TranslateResult;
- export type DateTimeFormatOptions = VueI18n.DateTimeFormatOptions;
- export type DateTimeFormat = VueI18n.DateTimeFormat;
- export type DateTimeFormats = VueI18n.DateTimeFormats;
- export type DateTimeFormatResult = VueI18n.DateTimeFormatResult;
- export type NumberFormatOptions = VueI18n.NumberFormatOptions;
- export type NumberFormat = VueI18n.NumberFormat;
- export type NumberFormats = VueI18n.NumberFormats;
- export type NumberFormatResult = VueI18n.NumberFormatResult;
- export type NumberFormatToPartsResult = VueI18n.NumberFormatToPartsResult;
- export type WarnHtmlInMessageLevel = VueI18n.WarnHtmlInMessageLevel;
- export type Formatter = VueI18n.Formatter;
- export type MissingHandler = VueI18n.MissingHandler;
- export type PostTranslationHandler = VueI18n.PostTranslationHandler;
- export type IntlAvailability = VueI18n.IntlAvailability;
- export type I18nOptions = VueI18n.I18nOptions;
- export declare interface IVueI18n {
- readonly messages: VueI18n.LocaleMessages;
- readonly dateTimeFormats: VueI18n.DateTimeFormats;
- readonly numberFormats: VueI18n.NumberFormats;
- locale: VueI18n.Locale;
- fallbackLocale: VueI18n.FallbackLocale;
- missing: VueI18n.MissingHandler;
- formatter: VueI18n.Formatter;
- formatFallbackMessages: boolean;
- silentTranslationWarn: boolean | RegExp;
- silentFallbackWarn: boolean | RegExp;
- preserveDirectiveContent: boolean;
- pluralizationRules: VueI18n.PluralizationRulesMap;
- warnHtmlInMessage: VueI18n.WarnHtmlInMessageLevel;
- postTranslation: VueI18n.PostTranslationHandler;
- t(key: VueI18n.Path, values?: VueI18n.Values): VueI18n.TranslateResult;
- t(key: VueI18n.Path, locale: VueI18n.Locale, values?: VueI18n.Values): VueI18n.TranslateResult;
- tc(key: VueI18n.Path, choice?: VueI18n.Choice, values?: VueI18n.Values): string;
- tc(
- key: VueI18n.Path,
- choice: VueI18n.Choice,
- locale: VueI18n.Locale,
- values?: VueI18n.Values,
- ): string;
- te(key: VueI18n.Path, locale?: VueI18n.Locale): boolean;
- d(
- value: number | Date,
- key?: VueI18n.Path,
- locale?: VueI18n.Locale,
- ): VueI18n.DateTimeFormatResult;
- d(value: number | Date, args?: { [key: string]: string }): VueI18n.DateTimeFormatResult;
- n(value: number, key?: VueI18n.Path, locale?: VueI18n.Locale): VueI18n.NumberFormatResult;
- n(value: number, args?: { [key: string]: string }): VueI18n.NumberFormatResult;
- getLocaleMessage(locale: VueI18n.Locale): VueI18n.LocaleMessageObject;
- setLocaleMessage(locale: VueI18n.Locale, message: VueI18n.LocaleMessageObject): void;
- mergeLocaleMessage(locale: VueI18n.Locale, message: VueI18n.LocaleMessageObject): void;
- getDateTimeFormat(locale: VueI18n.Locale): VueI18n.DateTimeFormat;
- setDateTimeFormat(locale: VueI18n.Locale, format: VueI18n.DateTimeFormat): void;
- mergeDateTimeFormat(locale: VueI18n.Locale, format: VueI18n.DateTimeFormat): void;
- getNumberFormat(locale: VueI18n.Locale): VueI18n.NumberFormat;
- setNumberFormat(locale: VueI18n.Locale, format: VueI18n.NumberFormat): void;
- mergeNumberFormat(locale: VueI18n.Locale, format: VueI18n.NumberFormat): void;
- getChoiceIndex: (choice: number, choicesLength: number) => number;
- }
- declare class VueI18n {
- constructor(options?: VueI18n.I18nOptions)
- readonly messages: VueI18n.LocaleMessages;
- readonly dateTimeFormats: VueI18n.DateTimeFormats;
- readonly numberFormats: VueI18n.NumberFormats;
- readonly availableLocales: VueI18n.Locale[];
- locale: VueI18n.Locale;
- fallbackLocale: VueI18n.FallbackLocale;
- missing: VueI18n.MissingHandler;
- formatter: VueI18n.Formatter;
- formatFallbackMessages: boolean;
- silentTranslationWarn: boolean | RegExp;
- silentFallbackWarn: boolean | RegExp;
- preserveDirectiveContent: boolean;
- pluralizationRules: VueI18n.PluralizationRulesMap;
- warnHtmlInMessage: VueI18n.WarnHtmlInMessageLevel;
- postTranslation: VueI18n.PostTranslationHandler;
- t(key: VueI18n.Path, values?: VueI18n.Values): VueI18n.TranslateResult;
- t(key: VueI18n.Path, locale: VueI18n.Locale, values?: VueI18n.Values): VueI18n.TranslateResult;
- tc(key: VueI18n.Path, choice?: VueI18n.Choice, values?: VueI18n.Values): string;
- tc(key: VueI18n.Path, choice: VueI18n.Choice, locale: VueI18n.Locale, values?: VueI18n.Values): string;
- te(key: VueI18n.Path, locale?: VueI18n.Locale): boolean;
- d(value: number | Date, key?: VueI18n.Path, locale?: VueI18n.Locale): VueI18n.DateTimeFormatResult;
- d(value: number | Date, args?: { [key: string]: string }): VueI18n.DateTimeFormatResult;
- n(value: number, key?: VueI18n.Path, locale?: VueI18n.Locale): VueI18n.NumberFormatResult;
- n(value: number, args?: { [key: string]: string }): VueI18n.NumberFormatResult;
- getLocaleMessage(locale: VueI18n.Locale): VueI18n.LocaleMessageObject;
- setLocaleMessage(locale: VueI18n.Locale, message: VueI18n.LocaleMessageObject): void;
- mergeLocaleMessage(locale: VueI18n.Locale, message: VueI18n.LocaleMessageObject): void;
- getDateTimeFormat(locale: VueI18n.Locale): VueI18n.DateTimeFormat;
- setDateTimeFormat(locale: VueI18n.Locale, format: VueI18n.DateTimeFormat): void;
- mergeDateTimeFormat(locale: VueI18n.Locale, format: VueI18n.DateTimeFormat): void;
- getNumberFormat(locale: VueI18n.Locale): VueI18n.NumberFormat;
- setNumberFormat(locale: VueI18n.Locale, format: VueI18n.NumberFormat): void;
- mergeNumberFormat(locale: VueI18n.Locale, format: VueI18n.NumberFormat): void;
- /**
- * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`
- * @param choicesLength {number} an overall amount of available choices
- * @returns a final choice index
- */
- getChoiceIndex: (choice: number, choicesLength: number) => number;
- static install: PluginFunction<never>;
- static version: string;
- static availabilities: VueI18n.IntlAvailability;
- }
- declare module 'vue/types/vue' {
- interface Vue {
- readonly $i18n: VueI18n & IVueI18n;
- $t: typeof VueI18n.prototype.t;
- $tc: typeof VueI18n.prototype.tc;
- $te: typeof VueI18n.prototype.te;
- $d: typeof VueI18n.prototype.d;
- $n: typeof VueI18n.prototype.n;
- }
- }
- declare module 'vue/types/options' {
- interface ComponentOptions<V extends Vue> {
- i18n?: {
- messages?: VueI18n.LocaleMessages;
- dateTimeFormats?: VueI18n.DateTimeFormats;
- numberFormats?: VueI18n.NumberFormats;
- sharedMessages?: VueI18n.LocaleMessages;
- };
- }
- }
- export default VueI18n;
|