获取iOS当前语言(包括国家/地区代码)

我需要在iOS中收到一个类似en_US或es_ES的字符串.

明显的方法是使用[NSLocale currentLocale]并从中获取语言信息.但是,这可以让您获得“区域格式”,而不是实际的设备语言,这意味着如果您将设备语言设置为英文,但区域格式为“西班牙”,则会错误地报告es_ES.

如果您需要设备语言,您必须这样做:
[[NSLocale preferredLanguages] objectAtIndex:0]

然而,这只会给你语言,所以你得到像en或es这样的东西,没有最后的国家代码.

如何正确地获取国家/地区代码,如Safari?

解决方法

尝试使用此代码:
NSString *locale = [[NSLocale currentLocale] localeIdentifier];
NSRange startRange = [locale rangeOfString:@"_"];
NSString *result = [locale stringByReplacingCharactersInRange:NSMakeRange(0,startRange.length+1) withString:[[NSLocale preferredLanguages] objectAtIndex:0]];
DebugLog(@"current locale: %@",result);

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...