有没有办法在运行时更改iphone应用程序语言?

时间:2014-03-12 07:10:19

标签: ios iphone objective-c localization

我的应用支持英语匈牙利语言的本地化。

如果用户在手机设置中设置英语或匈牙利语以外的默认语言,我想将默认语言设为匈牙利语而不是英语

例如。如果用户的手机设置语言是法语,因为我的应用程序不支持法语本地化,所以它应该在匈牙利推出,默认情况下不是英文版。

我在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]更改语言后,会立即返回新语言的字符串,即。正确的当前语言,并在代码中输入正确的条件。

但语言只会在第二次重新启动应用时发生变化,而不是第一次发布。

那我怎么能这样做呢?

谢谢..

0 个答案:

没有答案