1export type Localization = { 2 /** 3 * Three-character ISO 4217 currency code. Returns `null` on web. 4 * 5 * @example `'USD'`, `'EUR'`, `'CNY'`, `null` 6 */ 7 currency: string | null; 8 /** 9 * Decimal separator used for formatting numbers. 10 * 11 * @example `','`, `'.'` 12 */ 13 decimalSeparator: string; 14 /** 15 * Digit grouping separator used when formatting numbers larger than 1000. 16 * 17 * @example `'.'`, `''`, `','` 18 */ 19 digitGroupingSeparator: string; 20 /** 21 * A list of all the supported language ISO codes. 22 */ 23 isoCurrencyCodes: string[]; 24 /** 25 * Boolean value that indicates whether the system uses the metric system. 26 * On Android and web, this is inferred from the current region. 27 */ 28 isMetric: boolean; 29 /** 30 * Returns if the system's language is written from Right-to-Left. 31 * This can be used to build features like [bidirectional icons](https://material.io/design/usability/bidirectionality.html). 32 * 33 * Returns `false` in Server Side Rendering (SSR) environments. 34 */ 35 isRTL: boolean; 36 /** 37 * An [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag), 38 * consisting of a two-character language code and optional script, region and variant codes. 39 * 40 * @example `'en'`, `'en-US'`, `'zh-Hans'`, `'zh-Hans-CN'`, `'en-emodeng'` 41 */ 42 locale: string; 43 /** 44 * List of all the native languages provided by the user settings. 45 * These are returned in the order that the user defined in the device settings. 46 * 47 * @example `['en', 'en-US', 'zh-Hans', 'zh-Hans-CN', 'en-emodeng']` 48 */ 49 locales: string[]; 50 /** 51 * The region code for your device that comes from the Region setting under Language & Region on iOS. 52 * This value is always available on iOS, but might return `null` on Android or web. 53 * 54 * @example `'US'`, `'NZ'`, `null` 55 */ 56 region: string | null; 57 /** 58 * The current time zone in display format. 59 * On Web time zone is calculated with Intl.DateTimeFormat().resolvedOptions().timeZone. For a 60 * better estimation you could use the moment-timezone package but it will add significant bloat to 61 * your website's bundle size. 62 * 63 * @example `'America/Los_Angeles'` 64 */ 65 timezone: string; 66}; 67export type Locale = { 68 /** 69 * An [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) with a region code. 70 * @example `'en-US'`, `'es-419'`, `'pl-PL'`. 71 */ 72 languageTag: string; 73 /** 74 * An [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) without the region code. 75 * @example `'en'`, `'es'`, `'pl'`. 76 */ 77 languageCode: string; 78 /** 79 * The region code for your device that comes from the Region setting under Language & Region on iOS, Region settings on Android and is parsed from locale on Web (can be `null` on Web). 80 */ 81 regionCode: string | null; 82 /** 83 * Currency code for the locale. 84 * Is `null` on Web, use a table lookup based on region instead. 85 * @example `'USD'`, `'EUR'`, `'PLN'`. 86 */ 87 currencyCode: string | null; 88 /** 89 * Currency symbol for the locale. 90 * Is `null` on Web, use a table lookup based on region (if available) instead. 91 * @example `'$'`, `'€'`, `'zł'`. 92 */ 93 currencySymbol: string | null; 94 /** 95 * Decimal separator used for formatting numbers with fractional parts. 96 * @example `'.'`, `','`. 97 */ 98 decimalSeparator: string | null; 99 /** 100 * Digit grouping separator used for formatting large numbers. 101 * @example `'.'`, `','`. 102 */ 103 digitGroupingSeparator: string | null; 104 /** 105 * Text direction for the locale. One of: `'ltr'`, `'rtl'`, but can also be `null` on some browsers without support for the [textInfo](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/textInfo) property in [Intl](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl) API. 106 */ 107 textDirection: 'ltr' | 'rtl' | null; 108 /** 109 * The measurement system used in the locale. 110 * Is `null` on Web, as user chosen measurement system is not exposed on the web and using locale to determine measurement systems is unreliable. 111 * Ask for user preferences if possible. 112 */ 113 measurementSystem: `metric` | `us` | `uk` | null; 114 /** 115 * The temperature unit used in the locale. 116 * Returns `null` if the region code is unknown. 117 */ 118 temperatureUnit: 'celsius' | 'fahrenheit' | null; 119}; 120/** 121 * An enum mapping days of the week in Gregorian calendar to their index as returned by the `firstWeekday` property. 122 */ 123export declare enum Weekday { 124 SUNDAY = 1, 125 MONDAY = 2, 126 TUESDAY = 3, 127 WEDNESDAY = 4, 128 THURSDAY = 5, 129 FRIDAY = 6, 130 SATURDAY = 7 131} 132/** 133 * The calendar identifier, one of [Unicode calendar types](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/calendar). 134 * Gregorian calendar is aliased and can be referred to as both `CalendarIdentifier.GREGORIAN` and `CalendarIdentifier.GREGORY`. 135 */ 136export declare enum CalendarIdentifier { 137 /** Thai Buddhist calendar */ 138 BUDDHIST = "buddhist", 139 /** Traditional Chinese calendar */ 140 CHINESE = "chinese", 141 /** Coptic calendar */ 142 COPTIC = "coptic", 143 /** Traditional Korean calendar */ 144 DANGI = "dangi", 145 /** Ethiopic calendar, Amete Alem (epoch approx. 5493 B.C.E) */ 146 ETHIOAA = "ethioaa", 147 /** Ethiopic calendar, Amete Mihret (epoch approx, 8 C.E.) */ 148 ETHIOPIC = "ethiopic", 149 /** Gregorian calendar */ 150 GREGORY = "gregory", 151 /** Gregorian calendar (alias) */ 152 GREGORIAN = "gregory", 153 /** Traditional Hebrew calendar */ 154 HEBREW = "hebrew", 155 /** Indian calendar */ 156 INDIAN = "indian", 157 /** Islamic calendar */ 158 ISLAMIC = "islamic", 159 /** Islamic calendar, tabular (intercalary years [2,5,7,10,13,16,18,21,24,26,29] - civil epoch) */ 160 ISLAMIC_CIVIL = "islamic-civil", 161 /** Islamic calendar, Saudi Arabia sighting */ 162 ISLAMIC_RGSA = "islamic-rgsa", 163 /**Islamic calendar, tabular (intercalary years [2,5,7,10,13,16,18,21,24,26,29] - astronomical epoch) */ 164 ISLAMIC_TBLA = "islamic-tbla", 165 /** Islamic calendar, Umm al-Qura */ 166 ISLAMIC_UMALQURA = "islamic-umalqura", 167 /** ISO calendar (Gregorian calendar using the ISO 8601 calendar week rules) */ 168 ISO8601 = "iso8601", 169 /** Japanese imperial calendar */ 170 JAPANESE = "japanese", 171 /** Persian calendar */ 172 PERSIAN = "persian", 173 /** Civil (algorithmic) Arabic calendar */ 174 ROC = "roc" 175} 176export type Calendar = { 177 /** 178 * The calendar identifier, one of [Unicode calendar types](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/calendar). 179 * 180 * On Android is limited to one of device's [available calendar types](https://developer.android.com/reference/java/util/Calendar#getAvailableCalendarTypes()). 181 * 182 * On iOS uses [calendar identifiers](https://developer.apple.com/documentation/foundation/calendar/identifier), but maps them to the corresponding Unicode types, will also never contain `'dangi'` or `'islamic-rgsa'` due to it not being implemented on iOS. 183 */ 184 calendar: CalendarIdentifier | null; 185 /** 186 * True when current device settings use 24 hour time format. 187 * Can be null on some browsers that don't support the [hourCycle](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle) property in [Intl](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl) API. 188 */ 189 uses24hourClock: boolean | null; 190 /** 191 * The first day of the week. For most calendars Sunday is numbered `1`, with Saturday being number `7`. 192 * Can be null on some browsers that don't support the [weekInfo](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/weekInfo) property in [Intl](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl) API. 193 * @example `1`, `7`. 194 */ 195 firstWeekday: Weekday | null; 196 /** 197 * Time zone for the calendar. Can be `null` on Web. 198 * @example `'America/Los_Angeles'`, `'Europe/Warsaw'`, `'GMT+1'`. 199 */ 200 timeZone: string | null; 201}; 202//# sourceMappingURL=Localization.types.d.ts.map