export type L10nFormat = 'language' | 'language-script' | 'language-region' | 'language-script-region'; export interface L10nProvider { /** * The name of the provider. */ name: string; /** * The asset of the provider. */ asset: any; /** * Options to pass the loader. */ options?: any; } export interface L10nLocale { /** * language[-script][-region][-extension] * Where: * - language: ISO 639 two-letter or three-letter code * - script: ISO 15924 four-letter script code * - region: ISO 3166 two-letter, uppercase code * - extension: 'u' (Unicode) extensions */ language: string; /** * Alternative language to translate dates. */ dateLanguage?: string; /** * Alternative language to translate numbers. */ numberLanguage?: string; /** * ISO 4217 three-letter code. */ currency?: string; /** * Time zone name from the IANA time zone database. */ timeZone?: string; /** * Key value pairs of unit identifiers. */ units?: { [key: string]: string; }; } export interface L10nSchema { locale: L10nLocale; /** * Language direction. */ dir?: 'ltr' | 'rtl'; text?: string; } export interface L10nDateTimeFormatOptions extends Intl.DateTimeFormatOptions { /** * The date formatting style. */ dateStyle?: 'full' | 'long' | 'medium' | 'short'; /** * The time formatting style. */ timeStyle?: 'full' | 'long' | 'medium' | 'short'; /** * To handle missing properties in ts definition files. */ [key: string]: any; } export interface L10nNumberFormatOptions extends Intl.NumberFormatOptions { /** * The digits formatting. */ digits?: string; /** * To handle missing properties in ts definition files. */ [key: string]: any; }