iOS 默认语言国际化
设置默认语言国际化:
#define CURR_LANG ([[NSLocale preferredLanguages] objectAtIndex:0]) +(NSString *)JFLocalizedString:(NSString *)translation_key { NSString * s = NSLocalizedString(translation_key, nil); // 除英文及法文以外,其他默认显示德文 if (![CURR_LANG hasPrefix:@"en"] && ![CURR_LANG hasPrefix:@"fr"]) { NSString * path = [[NSBundle mainBundle] pathForResource:@"de" ofType:@"lproj"]; NSBundle * languageBundle = [NSBundle bundleWithPath:path]; s = [languageBundle localizedStringForKey:translation_key value:@"" table:nil]; } return s; }
注意:由于iOS9之后增加了区号,所以不适合用isEqual方法来判断本机语言,如:本机语言为英文时,iOS9之前获得的本机语言为en,而iOS9之后获得的本机语言为en-CN ,故此时使用 [CURR_LANG isEqual:@”en-CN”] 方法会出现适配不正确问题。
所以建议采用获取本机语言前缀的方式 [CURR_LANG hasPrefix:@”en”] 来确定本机语言国际化。