iOS获取当前系统语言

一、获取地区标识

// 比如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]的列表中寻找,最终找到可用的语言

参考文章

Last modification:May 16th, 2017 at 09:45 am
如果看了这个文章可以让你少加会班,可以请我喝杯可乐
已打赏名单
微信公众号

2 comments

  1. syyjay

    你好 请问这个是用什么模板做的博客

    1. 东东
      @syyjay

      程序用的友链中的typecho,模板用的网站底部写的NexT.Mist

Leave a Comment