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

作者: QiShare | 来源:发表于2018-11-01 14:39 被阅读127次

    级别:★☆☆☆☆
    标签:「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 获取设备当前语言和地区

        本文链接:https://www.haomeiwen.com/subject/ylbgtqtx.html