iOS9 真是坑啊,好不容易熬到17号凌晨,等到了iOS9的推送更新,经过漫长的下载,更新完成后发现 微博变英文版了,并且微信,uber等许多应用都出现了问题。并且正好赶上自己的项目也在做本地化,所以仔细查找了下原因。(如果有补充可以直接回复,谢谢)
具体问题出在大家都使用了一个获取当前系统语言的判断
// 当前所在地信息
NSString *identifier = [[NSLocalecurrentLocale] localeIdentifier];
NSString *displayName = [[NSLocale currentLocale] displayNameForKey:NSLocaleIdentifiervalue:identifier];
NSLog(@"%@", displayName);
// 当前所在地的使用语言
NSLocale *currentLocale = [NSLocale currentLocale];
NSLog(@"Language Code is %@", [currentLocale objectForKey:NSLocaleLanguageCode]);
// 系统语言
NSArray *arLanguages = [[NSUserDefaultsstandardUserDefaults] objectForKey:@"AppleLanguages"];
NSString *strLang = [arLanguages objectAtIndex:0];
NSLog(@"LANG:%@",strLang);
输出语言 后发现:
在iOS7 、iOS8系统下输出:
{
en 英语
zh-Hans 简体中文
}
而在iOS7 、iOS8系统下输出:
{
en-zh 英语
zh-Hans-US 简体中文
}
而如果你在程序中使用了类似的代码,导致系统语言是汉语但是判断不匹配,从而出现了 英文版的问题。
if ([currentLanguage isEqualToString:@"zh-Hans"]) {
// 使用汉语 。。。。
}
else{
//使用英语
}
苹果这次 真坑了不少人啊! ….