0

我正在对支持西班牙语和英语的应用程序进行本地化。这些选项列在表格视图中。单击英语时,我正在为 NSUserDefaults 中的键“AppleLanguages”设置值“en”。这样它就可以显示内容为英文。

NSUserDefaults *nsdefault=[NSUserDefaults standardUserDefaults];
            [nsdefault setObject:[NSArray arrayWithObject:@"en"] forKey:@"AppleLanguages"];
            [nsdefault synchronize];

同时,我试图以编程方式从 IOS 设备中获取语言,该设备使用代码手动设置为 General>>International>>Language。

NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];

语言第一次给了我设置的正确值。但是如果我从西班牙语或英语等列表中更改我的选项并为键“AppleLanguages”设置值。它会覆盖我的设备设置语言的值。从那时起我在设置>>国际>>语言下没有得到正确的语言值。

我希望每次我在弗朗西斯等设置中手动选择语言。我应该能够获得新设置的语言。我什至尝试按照苹果的链接。

https://developer.apple.com/library/mac/documentation/macosx/conceptual/bpinternational/Articles/ChoosingLocalizations.html

任何帮助,将不胜感激。

4

1 回答 1

0

没有正确的方法可以做到这一点,你不应该那样做。
您应该只依赖系统设置。我给了你一个不这样做的理由:所有系统调用都是用系统语言进行的。如果您在英语系统中强制使用一种语言(例如西班牙语)并在应用程序中显示地图,您将看到所有英语街道等,如果您请求反向地理编码或其他系统服务,也会发生同样的情况。

于 2013-10-21T15:10:02.370 回答