Ios 有没有办法在运行时更改iphone应用程序语言?
我的应用程序支持英语和匈牙利语言的本地化 如果用户从电话设置中设置了英语或匈牙利以外的默认语言,我想将默认语言设置为匈牙利语,而不是英语 例如,如果用户的手机设置语言是法语,因为我的应用程序不支持法语本地化,所以应该在匈牙利启动,默认情况下不使用英语 我在app delegate中的Ios 有没有办法在运行时更改iphone应用程序语言?,ios,iphone,objective-c,localization,Ios,Iphone,Objective C,Localization,我的应用程序支持英语和匈牙利语言的本地化 如果用户从电话设置中设置了英语或匈牙利以外的默认语言,我想将默认语言设置为匈牙利语,而不是英语 例如,如果用户的手机设置语言是法语,因为我的应用程序不支持法语本地化,所以应该在匈牙利启动,默认情况下不使用英语 我在app delegate中的didfishlaunchingwithoptions方法中使用了以下代码: [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLa
didfishlaunchingwithoptions
方法中使用了以下代码:
[[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]
立即返回新语言的字符串,即正确的当前语言,并且在代码中以正确的条件输入
但语言只有在第二次重新启动应用程序时才会改变,而不是在第一次启动时
那我该怎么做呢
谢谢..请看这里:问题解决了,在调用UIApplicationMain()之前,我在main.m中放了相同的代码。现在工作正常。