在項目中有臺灣的客戶需求支持英文和繁體,界面上的文字使用配置頁面就可以解決,但是代碼中修改頁面的文字動態改變比較麻煩了.
最開始 使用的是:
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"]){
//英文
}