gpt4 book ai didi

iphone - NSLocale currentLocale 总是返回 "en_US"而不是用户的当前语言

转载 作者:IT老高 更新时间:2023-10-28 11:23:23 25 4
gpt4 key购买 nike

我正在对 iPhone 应用程序进行国际化 - 我需要根据用户当前的语言环境对某些 View 进行编程更改。我要疯了,因为无论 iPhone 模拟器或实际硬件上的语言偏好是什么,locale 总是评估为“en_US”:

NSString *locale = [[NSLocale currentLocale] localeIdentifier];
NSLog(@"current locale: %@", locale);

令人疯狂的是,应用程序的其余部分按预期运行。从 Localization.strings 文件中选择正确的字符串并在界面中使用,并使用所选语言环境的正确 .xib 文件。

我也尝试了以下方法,但无济于事,结果相同:

NSString *locale = [[NSLocale autoupdatingCurrentLocale] localeIdentifier];
NSLog(@"current locale: %@", locale);

我缺少一些简单的东西吗?可能是偏好还是进口?

我曾经做过的事情:

正如 Darren 的回答所暗示的,我正在寻找的偏好不在 NSLocale 中,而是在这里:

NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
NSArray* languages = [userDefaults objectForKey:@"AppleLanguages"];
NSString* preferredLanguage = [languages objectAtIndex:0];
NSLog(@"preferredLanguage: %@", preferredLang);

彼得的回答似乎是一个更好的解决方案:

NSArray* preferredLanguages = [NSLocale preferredLanguages];
NSLog(@"preferredLanguages: %@", preferredLanguages);

最佳答案

[NSLocale currentLocale] 基于设备的区域格式设置,而不是语言。如果地区设置为美国,无论您使用哪种语言,您都将获得 en_US。

关于iphone - NSLocale currentLocale 总是返回 "en_US"而不是用户的当前语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1522210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com