AppleLanguages值会覆盖IOS设置首选语言中设置的语言值

时间:2013-10-21 14:19:50

标签: ios settings nslocalizedstring overrides

我正在开发支持西班牙语和英语的应用程序的本地化。这些选项列在tableview中。单击英语我在NSUserDefaults.So中为“AppleLanguages”键设置值“en”可以用英语显示内容。

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

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

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

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

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

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

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

相关问题