iOS获取系统语言

iOS获取系统语言有三种方法、话不多说、直接贴代码、如有错误 请留言指正。

方法一:
读取本机设置的语言列表,获取第一个语言,该方法读取的语言为:国际通用语言Code+国际通用国家地区代码,
所以实际上想获取语言还需将国家地区代码剔除
代码:
NSString  *languageList =  [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] ;// 本机设置的语言列表
NSLog(@"languageList : %@", languageList);
NSStrting *languageCode = [languageList  firstObject];// 当前设置的首选语言
NSString *countryCode = [NSString stringWithFormat:@"-%@", [[NSLocale currentLocale] objectForKey:NSLocaleCountryCode]];
    if (languageCode) {
        languageCode = [languageCode stringByReplacingOccurrencesOfString:countryCode withString:@""];
    }
NSLog(@"languageCode : %@", languageCode);

日志:
2018-02-09 10:45:01.959412+0800 Demo[9528:2408422] languageList : (
    "zh-Hans-GB",
    "zh-Hant-GB",
    "en-GB",
    "zh-Hant-HK",
    "ja-GB",
    "de-GB",
    "es-GB",
    "fr-GB",
    "ru-GB",
    "ko-GB"
)
2018-02-09 10:45:01.959781+0800 Demo[9528:2408422] languageCode : zh-Hans

方法二:和方法一大同小异
代码:
NSString *languageCode = [NSLocale preferredLanguages][0];// 返回的也是国际通用语言Code+国际通用国家地区代码
NSString *countryCode = [NSString stringWithFormat:@"-%@", [[NSLocale currentLocale] objectForKey:NSLocaleCountryCode]];
    if (languageCode) {
        languageCode = [languageCode stringByReplacingOccurrencesOfString:countryCode withString:@""];
    }
NSLog(@"languageCode : %@", languageCode);

日志:
2018-02-09 10:45:01.959781+0800 Demo[9528:2408422] languageCode : zh-Hans

方法三:
直接也最简单,但是在iOS11上有个Bug,即在iPhone->通用->语言与地区  添加了简体中文、English,并将中文设置默认语言的情况下,该函数返回的必定是英文。
NSString *languageCode = [NSLocale  currentLocale].languageCode;// 当前设置的首选语言


你可能感兴趣的:(iOS获取系统语言)