一、获取地区标识

// 比如Loacl是en_Zh
NSString *identifier = [[NSLocale currentLocale] localeIdentifier]; 
// displayName = “中国”
NSString *displayName = [[NSLocale currentLocale] displayNameForKey:NSLocaleIdentifier value:identifier];

二、获取语言

NSString *udfLanguageCode = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"][0];
NSString *pfLanguageCode = [NSLocale preferredLanguages][0];
NSString *localeLanguageCode = [[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode];
NSString *language =  [[NSBundle mainBundle] preferredLocalizations][0];

打印结果

设置语言udfLanguageCodepfLanguageCodelocaleLanguageCodelanguage
简体中文zh-Hans-CNzh-Hans-CNzhzh-Hans
繁体中文zh-Hant-CNzh-Hant-CNzhzh-Hant
繁体中文(香港)zh-Hant-HKzh-Hant-HKzhzh-Hant
繁体中文(台湾)zh-Hant-TWzh-Hant-TWzhzh-Hant
繁体中文(澳门)zh-Hant-MOzh-Hant-MOzhzh-Hant

由此可以看到这几个获取系统语言的方法准确性是不一样的,前两种udfLanguageCode和pfLanguageCode获取的会将国家地区的代码加上,而localeLanguageCode只是显示是中文,并不能区分是繁体中文还是简体中文,而最后这个方法是中文的。

2.1、获取的语言区别

前三个获取的是用户在手机系统设置里设置的语言,可以通过设置》一般》语言与地区看到,不是程序正在显示的语言。

而第四个是NSBundle从[NSLocal preferredLanguages]的列表中寻找,最终找到可用的语言

参考文章


☟☟可点击下方广告支持一下☟☟

最后修改:2017 年 05 月 16 日
请我喝杯可乐,请随意打赏: ☞已打赏列表