×
广告

iOS 获取设备当前语言和地区

96
QiShare
2018.11.01 14:39 字数 466

级别:★☆☆☆☆
标签:「AppleLanguages」「zh-Hans-CN」
作者: WYW
审校: QiShare团队

需求:前段时间项目做本地化,向服务端请求数据的时候,上行参数需要携带设备当前语言。故本篇文章记录一下“iOS 获取设备当前语言和地区”的方法。

一、获取设备当前语言和地区的代码

// iOS 获取设备当前语言和地区的代码
NSString *currentLanguageRegion = [[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] firstObject];

简体&中国大陆地区环境下的输出结果:
currentLanguageRegion:zh-Hans-CN


二、切换设备当前语言和地区的方法

  • 通过Xcode修改App语言环境:(优先级高,但不常用)
    方法:Edit Scheme -> Options -> Application Language/Application Region

  • 通过手机(或模拟器)修改语言和地区:(优先级低,常用)
    方法:通用 -> 语言与地区 -> 选择iPhone语言/地区

分别使用上述两种设备方式,前者只输出语言信息,后者会连同地区信息一起输出。以“简体&中国大陆地区”为例,输出结果如下:

  • app 语言环境:zh-Hans
  • 设备语言环境:zh-Hans-CN

三、获取设备当前语言和地区的其他方法

  • 获取当前语言:
// iOS 获取设备当前语言的代码
NSString *preferredLanguage = [[[NSBundle mainBundle] preferredLocalizations] firstObject];
  • 获取当前地区:
// iOS 获取设备当前地区的代码
NSString *localeIdentifier = [[NSLocale currentLocale] objectForKey:NSLocaleIdentifier];

以“简体&中国大陆地区”为例,输出结果如下:

  • preferredLanguage:zh-Hans
  • localeIdentifier:zh_CN

PS:以上的三种方法获取的结果不同,大家可以根据自己的需要,选用合适的方法。


关注我们的途径有:
QiShare(简书)
QiShare(掘金)
QiShare(知乎)
QiShare(GitHub)
QiShare(CocoaChina)
QiShare(StackOverflow)
QiShare(微信公众号)

推荐文章:
iOS 绘制渐变·基础篇
iOS 绘制渐变·实例篇
iOS 编写高质量Objective-C代码(七)
奇舞周刊

iOS
Web note ad 1