summaryrefslogtreecommitdiff
path: root/platform/ios/src/NSOrthography+MGLAdditions.m
blob: 99258862cc2f1029f5841829f05291743da9b68a (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
#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:@"ru"]) {
        return @"Cyrl";
    } else if ([language isEqualToString:@"ar"]) {
        return @"Arab";
    } else {
        // Code for undetermined script
        return @"Zyyy";
    }
}

@end