iOS 获取设备当前语言和地区 - twototwoto/WYW_Blog GitHub Wiki
需求:前段时间项目做本地化,向服务端请求数据的时候,上行参数需要携带设备当前语言。故本篇文章记录一下“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:以上的三种方法获取的结果不同,大家可以根据自己的需要,选用合适的方法。