一、获取地区标识
// 比如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];
打印结果
设置语言 | udfLanguageCode | pfLanguageCode | localeLanguageCode | language |
---|---|---|---|---|
简体中文 | zh-Hans-CN | zh-Hans-CN | zh | zh-Hans |
繁体中文 | zh-Hant-CN | zh-Hant-CN | zh | zh-Hant |
繁体中文(香港) | zh-Hant-HK | zh-Hant-HK | zh | zh-Hant |
繁体中文(台湾) | zh-Hant-TW | zh-Hant-TW | zh | zh-Hant |
繁体中文(澳门) | zh-Hant-MO | zh-Hant-MO | zh | zh-Hant |
由此可以看到这几个获取系统语言的方法准确性是不一样的,前两种udfLanguageCode和pfLanguageCode获取的会将国家地区的代码加上,而localeLanguageCode只是显示是中文,并不能区分是繁体中文还是简体中文,而最后这个方法是中文的。
2.1、获取的语言区别
前三个获取的是用户在手机系统设置里设置的语言,可以通过设置》一般》语言与地区看到,不是程序正在显示的语言。
而第四个是NSBundle从[NSLocal preferredLanguages]的列表中寻找,最终找到可用的语言
参考文章
版权属于:东哥笔记 - DongGe.org
本文链接:https://dongge.org/blog/556.html
自2017年12月26日起,『转载以及大段采集进行后续编辑』须注明本文标题和链接!否则禁止所有转载和采集行为!
4 条评论
你好 请问这个是用什么模板做的博客
程序用的友链中的typecho,模板用的网站底部写的NexT.Mist