我在主页上有一个像阿拉伯语和英语的选项。如果用户选择一个arbic然后整个应用程序将显示arbic language.i已经听说 nslocalizedstring 我也找到了解决方案在here。 我不清楚如何显示一个enitre app.i可能有十个 viewcontroller 然后我将如何从家里更改 viewcontroller .how为此创建全局文件。
提前感谢。
答案 0 :(得分:2)
试试这个tutorial它会完成你需要创建的整个配置和文件。您不必从主ViewController更改10 ViewControllers语言,您只需要在NSUserDefault值中设置用户选择的语言,如果您必须根据语言执行特定操作,请稍后在ViewControllers中进行检查。
这会将语言设置为阿拉伯语
NSUserDefaults*userDefaults=[NSUserDefaults standardUserDefaults];
[userDefaults setObject:[NSArray arrayWithObjects:@"ar", @"en", nil];
这是英语
[userDefaults setObject:[NSArray arrayWithObjects:@"en", @"ar", nil];
稍后在ViewControllers中,您可以使用此
进行检查- (NSString*) getLanguage{
NSArray* languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
NSString *preferredLang = [languages objectAtIndex:0];
return preferredLang;
}
故事板和NSLocalizedString知道它应该使用您为AppleLanguages键设置的值自动从其预期字符串文件加载哪种语言。
答案 1 :(得分:1)
NSLocalizedString的工作原理是遵循操作系统语言设置。因此,您为每种语言创建一个字符串文件,而不是硬编码您的字符串。然后,应用程序将根据用户设备设置自动显示正确的语言。我不认为(虽然我可能错了)这种方法适用于按钮。您可以在按下按钮时手动加载字符串文件。另一个解决方案是一个充满if语句的应用程序来加载正确的语言。