美文网首页iOS Developer
iOS 10 获取当前系统语言的一些变化

iOS 10 获取当前系统语言的一些变化

作者: 没梦想的咸鱼2 | 来源:发表于2016-10-28 14:52 被阅读1646次

    项目需要根据用户的首选语言来选择切换繁体或者简体

    那么如何获取首选语言?

      NSArray *languages = [NSLocale preferredLanguages]; 
    
      NSString *currentLanguage = [languages objectAtIndex:0];  
    
      NSLog( @"%@" , currentLanguage);  
    

    或者

    NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
    
    NSArray * allLanguages = [defaults objectForKey:@"AppleLanguages"];
    
    NSString * preferredLang = [allLanguages objectAtIndex:0];
    

    但是返回的值在不同的系统版本略有些不同,以下是详细的列表

    iOS7

    zh-Hans: 简体
    zh-Hant: 繁体

    iOS8

    zh-Hans: 简体
    zh-Hant: 繁体
    zh-HK: 香港繁体(增加)

    iOS9

    zh-Hans-CN: 简体(改变)
    zh-Hant-CN: 繁体(改变)
    zh-HK: 香港繁体
    zh-TW: 台湾繁体(增加)

    iOS 10

    zh-Hans-CN 简体
    yue-Hans-CN 粤语 简体 (增加)
    yue-Hant-CN 粤语 繁体 (增加)
    zh-Hant-CN 繁体
    zh-Hant-MO 澳门繁体 (改变)
    zh-Hant-TW 台湾繁体 (改变)
    zh-Hant-HK 香港繁体 (改变)

    参考的判断代码

    BOOL isZhHans()
    {
          NSString *pfLanguageCode = [NSLocale preferredLanguages][0];
          if ([pfLanguageCode isEqualToString:@"zh-Hans"] ||
          [pfLanguageCode hasPrefix:@"yue-Hans"] ||
          [pfLanguageCode hasPrefix:@"zh-Hans"])
          {
              return YES;
          }
           else
          {
              return NO;
          }
    }
    
    
      BOOL isZhHant()
      {
            NSString *pfLanguageCode = [NSLocale preferredLanguages][0];
            if ([pfLanguageCode isEqualToString:@"zh-Hant"] ||
              [pfLanguageCode hasPrefix:@"zh-Hant"] ||
              [pfLanguageCode hasPrefix:@"yue-Hant"] ||
              [pfLanguageCode isEqualToString:@"zh-HK"] ||
              [pfLanguageCode isEqualToString:@"zh-TW"]
              )
              {
                   return YES;
              }
              else
              {
                  return NO;
              }
    

    }

    相关文章

      网友评论

        本文标题:iOS 10 获取当前系统语言的一些变化

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