UNPKG

1.47 kBPlain TextView Raw
1// Copyright 2018-present 650 Industries. All rights reserved.
2
3#import <EXLocalization/EXLocalization.h>
4
5@implementation EXLocalization
6
7EX_EXPORT_MODULE(ExpoLocalization)
8
9- (NSMutableArray *)ensureLocaleTags:(NSArray *)locales
10{
11 NSMutableArray *sanitizedLocales = [NSMutableArray array];
12 for (id locale in locales)
13 [sanitizedLocales addObject:[locale stringByReplacingOccurrencesOfString:@"_" withString:@"-"]];
14
15 return sanitizedLocales;
16}
17
18EX_EXPORT_METHOD_AS(getLocalizationAsync,
19 getLocalizationAsync:(EXPromiseResolveBlock)resolve
20 rejecter:(EXPromiseRejectBlock)reject)
21{
22 resolve([self constantsToExport]);
23}
24
25- (NSDictionary *)constantsToExport
26{
27 NSArray *preferredLocales = [self ensureLocaleTags:[NSLocale preferredLanguages]];
28 NSTimeZone *currentTimeZone = [NSTimeZone localTimeZone];
29 NSString *countryCode = [[NSLocale currentLocale] objectForKey:NSLocaleCountryCode];
30
31 NSLocaleLanguageDirection localeLanguageDirection = [NSLocale characterDirectionForLanguage:[NSLocale preferredLanguages][0]];
32 BOOL isRTL = localeLanguageDirection == NSLocaleLanguageDirectionRightToLeft;
33
34 return @{
35 @"isRTL": @(isRTL),
36 @"locale": [preferredLocales objectAtIndex:0],
37 @"locales": preferredLocales,
38 @"timezone": [currentTimeZone name],
39 @"isoCurrencyCodes": [NSLocale ISOCurrencyCodes],
40 @"country": countryCode
41 };
42}
43
44@end