NSLocale始终返回en_US

hha*_*amm 9 iphone localization

我想获得当前选择的iphone语言.如果使用"NSLocale",它将始终返回相同的语言.看来这不是你在iphone设置中选择的那个.

NSLocale * locale = [NSLocale currentLocale];
NSString * localLanguage = [locale objectForKey:NSLocaleLanguageCode];
NSLog (@"Language : %@", localLanguage); // Returns always : "en_US"
Run Code Online (Sandbox Code Playgroud)

如何获得当前语言?

hha*_*amm 16

答案是检查首选语言:

NSString *preferredLang = [[NSLocale preferredLanguages] objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)


use*_*609 7

这个问题很老,但是因为升级到Xcode 6.1,原因是新的.
由于一个错误,iOS8模拟器[NSLocale currentLocale]总是返回"en_US".虽然它在设备上没问题.因此,我建议在真实设备上进行测试,然后沮丧地将头撞向墙壁.


来源:https ://stackoverflow.com/a/26510914/3099609
https://developer.apple.com/library/ios/releasenotes/DeveloperTools/RN-Xcode/Chapters/xc6_release_notes.html#//apple_ref/doc/uid/TP40001051-CH4-DontLinkElementID_23


Ste*_*out -1

尝试[[NSLocale autoupdatingCurrentLocale] objectForKey:NSLocaleLanguageCode]