我正在使用语言本地化。每当我从应用程序中的下拉列表中选择一种语言时,我想更改应用程序的语言,即它应该在不更改设备语言的情况下更改语言。请建议我如何实施
提前致谢
答案 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位置添加您想要加载的语言。