在项目中有台湾的客户需求支持英文和繁体,界面上的文字使用配置页面就可以解决,但是代码中修改页面的文字动态改变比较麻烦了.
最开始 使用的是:
NSArray *languages = [NSLocale preferredLanguages];
NSString *currentLanguage = [languages objectAtIndex:0];
这个方法,但是在使用过程中发现,如果修改系统语言后不重启电脑,会无法获取到最新的系统语言.
然后修改成下面这个方法:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
NSString *currentLanguage = [languages objectAtIndex:0];
使用了这个方法后,不重启电脑也可以获取到修改后的系统语言.
if([currentLanguage containsString:@"zh-Hans"]){
//简体
}else if([currentLanguage containsString:@"zh-Hant"]){
//繁体
}else if([currentLanguage containsString:@"en"]){
//英文
}