http://www.tuicool.com/articles/m2uEfyN
iOS9正确获取用户语言设置
ios 移动开发 September 29 2015
升级 iOS9 后,发现很多应用都变成了英文的,这是因为 iOS9 对语言的标识进行升级,导致一些程序原有的语言判断出错,针对这个情况,在兼容原有系统的基础上对语言的判断进行升级,让功能更加完善,分享之~
获取语言方法
NSString *currentLanguage = [[NSLocale preferredLanguages] objectAtIndex:0];
NSLog(@"currentlanguage = %@",currentLanguage);
原有判断逻辑为
之前的中文使用 zh-Hans
直接判断相等即可:
if ([currentLanguage isEqualToString:@"zh-Hans"]) {
NSLog("zh-Hans");
}
兼容判断逻辑
iOS升级后 zh-Hans
变成了 zh-Hans-CN
,估计是按照 “RFC 4646” 进行进一步规范,为了兼容原有的系统,对判断逻辑进行如下升级:
if ([currentLanguage containsString:@"zh-Hans"]) {
NSLog("zh-Hans");
}
同理,繁体中文的变成:
if ([currentLanguage isEqualToString:@"zh-Hant"]) {
NSLog("zh-Hant");
}