我正在使用语言本地化。每当我从我的应用程序中出现的下拉列表中选择一种语言时,我想更改我的应用程序的语言,是应该改变的语言,而不改变设备。请建议我的语言,我怎么能实现提前从iphone下拉列表中选择一个选项后语言发生变化
感谢
我正在使用语言本地化。每当我从我的应用程序中出现的下拉列表中选择一种语言时,我想更改我的应用程序的语言,是应该改变的语言,而不改变设备。请建议我的语言,我怎么能实现提前从iphone下拉列表中选择一个选项后语言发生变化
感谢
嘿,我跟着你的链接,其部分真的很有帮助。在一个例子中,他们正在点击按钮选择一种语言,但我的疑问是,我可以通过pickerview来设置它,即从pickerview中的列表中选择语言应该改变 – sujay
有一组国家代码,如@“it”,@“de”,并用它来填充选取器。然后,使用picker委托方法来切换语言:' - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {[Language setLanguage:[_array objectAtIndex:row]]; //更新视图的一些代码(标签和使用不同语言的地方)}'。如果我正确理解你的问题:) –
你可以做到这一点,但它不会与内置的定位功能发挥很好基础(例如NSLocalizedString
),所以您需要忽略它们并编写自己的字符串获取函数,XIB加载路径等。
的问题和答案在这里介绍了如何访问本地化的管束上像这样飞: Overriding preferred strings localization on the fly for testing
您可以强制“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"];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *languages = [NSMutableArray arrayWithArray:[defaults objectForKey:@"AppleLanguages"]];
[languages replaceObjectAtIndex:0 withObject:@"fr"];
[defaults setObject:languages forKey:@"AppleLanguages"];
[defaults synchronize];
这是设置语言为法语。只需在位置0上加载你想要的语言即可。
一如既往,请考虑它是否符合用户的利益,值得您花时间规避此处的标准系统行为。 –