2011-07-06 45 views
0

我正在使用语言本地化。每当我从我的应用程序中出现的下拉列表中选择一种语言时,我想更改我的应用程序的语言,是应该改变的语言,而不改变设备。请建议我的语言,我怎么能实现提前从iphone下拉列表中选择一个选项后语言发生变化

感谢

+1

一如既往,请考虑它是否符合用户的利益,值得您花时间规避此处的标准系统行为。 –

回答

2
+0

嘿,我跟着你的链接,其部分真的很有帮助。在一个例子中,他们正在点击按钮选择一种语言,但我的疑问是,我可以通过pickerview来设置它,即从pickerview中的列表中选择语言应该改变 – sujay

+0

有一组国家代码,如@“it”,@“de”,并用它来填充选取器。然后,使用picker委托方法来切换语言:' - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {[Language setLanguage:[_array objectAtIndex:row]]; //更新视图的一些代码(标签和使用不同语言的地方)}'。如果我正确理解你的问题:) –

0

你可以做到这一点,但它不会与内置的定位功能发挥很好基础(例如NSLocalizedString),所以您需要忽略它们并编写自己的字符串获取函数,XIB加载路径等。

的问题和答案在这里介绍了如何访问本地化的管束上像这样飞: Overriding preferred strings localization on the fly for testing

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"]; 
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上加载你想要的语言即可。

相关问题