iOS获取系统语言

作者: 叫我天涯 | 来源:发表于2018-02-09 10:56 被阅读366次

    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获取系统语言

        本文链接:https://www.haomeiwen.com/subject/nzlftftx.html