UNPKG

1.47 kBJavaScriptView Raw
1import * as rtlDetect from 'rtl-detect';
2export default {
3 get isRTL() {
4 return rtlDetect.isRtlLang(this.locale);
5 },
6 get locale() {
7 const locale = navigator.language ||
8 navigator['systemLanguage'] ||
9 navigator['browserLanguage'] ||
10 navigator['userLanguage'] ||
11 this.locales[0];
12 return locale;
13 },
14 get locales() {
15 const { languages = [] } = navigator;
16 return Array.from(languages);
17 },
18 get timezone() {
19 const defaultTimeZone = 'Etc/UTC';
20 if (typeof Intl === 'undefined') {
21 return defaultTimeZone;
22 }
23 return Intl.DateTimeFormat().resolvedOptions().timeZone || defaultTimeZone;
24 },
25 get isoCurrencyCodes() {
26 // TODO: Bacon: Add this - very low priority
27 return [];
28 },
29 get region() {
30 const { locale } = this;
31 if (typeof locale === 'string' && locale.length) {
32 const isoCountryCode = locale.substring(locale.lastIndexOf('-') + 1);
33 return isoCountryCode.toUpperCase();
34 }
35 return undefined;
36 },
37 async getLocalizationAsync() {
38 const { region, isoCurrencyCodes, timezone, locales, locale, isRTL } = this;
39 return {
40 region,
41 isoCurrencyCodes,
42 timezone,
43 locales,
44 locale,
45 isRTL,
46 };
47 },
48};
49//# sourceMappingURL=ExpoLocalization.web.js.map
\No newline at end of file