blob: f48a2ffcbebcdd782e278ffbad112065f191fb4d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#import "NSOrthography+MGLAdditions.h"
@implementation NSOrthography (MGLAdditions)
+ (NSString *)mgl_dominantScriptForMapboxStreetsLanguage:(NSString *)language {
if (@available(iOS 11.0, *)) {
NSLocale *locale = [NSLocale localeWithLocaleIdentifier:language];
NSOrthography *orthography = [NSOrthography defaultOrthographyForLanguage:locale.localeIdentifier];
return orthography.dominantScript;
}
// Manually map Mapbox Streets languages to ISO 15924 script codes.
NSSet *latinLanguages = [NSSet setWithObjects:@"de", @"en", @"es", @"fr", @"pt", nil];
NSSet *hansLanguages = [NSSet setWithObjects:@"zh", @"zh-Hans", nil];
if ([latinLanguages containsObject:language]) {
return @"Latn";
} else if ([hansLanguages containsObject:language]) {
return @"Hans";
} else if ([language isEqualToString:@"zh-Hant"]) {
return @"Hant";
} else if ([language isEqualToString:@"ru"]) {
return @"Cyrl";
} else if ([language isEqualToString:@"ar"]) {
return @"Arab";
} else if ([language isEqualToString:@"ja"]) {
return @"Jpan";
} else if ([language isEqualToString:@"ko"]) {
return @"Kore";
} else {
// Code for undetermined script
return @"Zyyy";
}
}
@end
|