1import ExpoLocalization from './ExpoLocalization';
2import { Localization } from './Localization.types';
3
4export { Localization };
5
6// Web, Android, and some iOS values use `-`. This will convert the iOS values that use `_`
7// https://github.com/expo/expo/blob/21ae94bae2e8369992050c433a00699d425b35bd/packages/expo/src/Localization.ts#L112-L114
8const parseLocale = (locale: string): string => locale.replace('_', '-');
9
10export const locale = parseLocale(ExpoLocalization.locale);
11export const locales = ExpoLocalization.locales.map(parseLocale);
12export const timezone = ExpoLocalization.timezone;
13export const isoCurrencyCodes = ExpoLocalization.isoCurrencyCodes;
14export const region = ExpoLocalization.region; // iOS, Web
15export const isRTL = ExpoLocalization.isRTL;
16
17export async function getLocalizationAsync(): Promise<Localization> {
18  const { locale, locales, ...localization } = await ExpoLocalization.getLocalizationAsync();
19  return {
20    locale: parseLocale(locale),
21    locales: ExpoLocalization.locales.map(parseLocale),
22    ...localization,
23  };
24}
25