从iphone的下拉列表中选择一个选项后语言更改

时间:2011-07-06 13:55:25

标签: iphone objective-c xcode localization

我正在使用语言本地化。每当我从应用程序中的下拉列表中选择一种语言时,我想更改应用程序的语言,即它应该在不更改设备语言的情况下更改语言。请建议我如何实施

提前致谢

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

你可以这样做,但它不能很好地与Foundation中的内置本地化函数(例如NSLocalizedString)一起使用,所以你需要忽略它们并编写你自己的字符串获取函数,XIB - 加载路径等

这里的问题和答案涵盖了如何快速访问捆绑中的本地化,如下所示: Overriding preferred strings localization on the fly for testing

答案 2 :(得分:0)

您可以强制使用“AppleLanguages”用户默认值。 以下示例显示了如何完成;特别是在这里,我用第二语言切换第一个(默认)。



    NSArray *lang = [[NSUserDefaults standardUserDefaults] arrayForKey:@"AppleLanguages"];
    NSLog(@"current lang: %@",lang);
    [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:
                                                      [lang objectAtIndex:1],
                                                      [lang objectAtIndex:0],
                                                      nil]
                                              forKey:@"AppleLanguages"];

答案 3 :(得分:0)

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSMutableArray *languages = [NSMutableArray arrayWithArray:[defaults objectForKey:@"AppleLanguages"]];

    [languages replaceObjectAtIndex:0 withObject:@"fr"];

    [defaults setObject:languages forKey:@"AppleLanguages"];
    [defaults synchronize];

这是将语言设置为法语。只需在0位置添加您想要加载的语言。