我的应用支持英语和匈牙利语言的本地化。
如果用户在手机设置中设置英语或匈牙利语以外的默认语言,我想将默认语言设为匈牙利语而不是英语。
例如。如果用户的手机设置语言是法语,因为我的应用程序不支持法语本地化,所以它应该在匈牙利推出,默认情况下不是英文版。
我在app delegate中的didFinishLaunchingWithOptions
方法中使用了以下代码:
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLanguages"];
[NSUserDefaults resetStandardUserDefaults];
NSLog(@"%@",[NSLocale preferredLanguages]);
NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
if ([language isEqualToString:@"en"])
{
NSArray *langOrder = [NSArray arrayWithObjects:@"en", nil];
[[NSUserDefaults standardUserDefaults] setObject:langOrder forKey:@"AppleLanguages"];
}
else
{
NSArray *langOrder = [NSArray arrayWithObjects:@"hu", nil];
[[NSUserDefaults standardUserDefaults] setObject:langOrder forKey:@"AppleLanguages"];
}
因此,从电话设置[[NSLocale preferredLanguages] objectAtIndex:0]
更改语言后,会立即返回新语言的字符串,即。正确的当前语言,并在代码中输入正确的条件。
但语言只会在第二次重新启动应用时发生变化,而不是第一次发布。
那我怎么能这样做呢?
谢谢..