如果您的应用程序的本地化版本有多种语言,但如果用户未使用任何语言,则该应用程序将进行本地化。
如何设置默认语言?或者在这种情况下定义默认语言的最佳做法是什么?
以下是我试图解决的问题:
应用程序已在en / fr / es中进行本地化,但如果语言区域设置不是en / fr / es,您如何定义默认值?
如果语言区域设置是此en / fr / es中的任何一个,并且用户需要在NSUserDefaults上使用不同的语言定义。假设使用英语作为NSUserDefaults但是想使用应用程序的本地化版本。有一种方法可以覆盖NSUserDefaults上的语言吗?
答案 0 :(得分:1)
在应用程序启动之前编写NSUserDefaults
问题1:您可以按以下方式设置您喜欢的订单。[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"de", @"en", @"fr", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
问题2:强制使用fr
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"de", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
答案 1 :(得分:0)
我发现这不再适用于iOS 9(可能还有10个)。我们的代码库中有几个目标。对于其中的几个我总是希望它用英语出现,即使捆绑中可能存在本地化字符串。
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
我在main()中添加了上面的代码。应用程序第一次运行时会出现用户选择的语言。在随后的运行中,它将根据需要以英语显示。
任何人都可以确认这在iOS 9中不起作用并提出替代方案吗?如果我不这样做,我宁愿不删除其他的lproj条目。