0

我正在使用下面的代码切换到一种语言:

-(void) switchToLanguage:(NSString *)lang{
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:lang, nil] 
          forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
[sliderViewController refreshView];
}

我不确定它是否正确。之后,在sliderViewController的刷新视图函数中:

-(void)refreshView{
slideLabel.text = NSLocalizedString(@"To Menu", @"To Menu");
slogan.text = NSLocalizedString(@"Categories", @"Categories");
}

但它不起作用。我哪里错了?

4

1 回答 1

2

设置AppleLanguages密钥仅在您的main.m文件中有效,在UIApplicationMain调用之前。如果您在任何其他时间尝试更改其值,它将无法正常工作。

如果您希望支持在运行时更改语言,您将不得不推出自己的本地化功能。

于 2012-04-04T12:32:39.570 回答