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”] 来确定本机语言国际化。