如何在ios中更改阿拉伯语或英语的应用语言?

时间:2014-10-10 13:43:15

标签: ios arabic

我在主页上有一个像阿拉伯语和英语的选项。如果用户选择一个arbic然后整个应用程序将显示arbic language.i已经听说 nslocalizedstring 我也找到了解决方案在here。 我不清楚如何显示一个enitre app.i可能有十个 viewcontroller 然后我将如何从家里更改 viewcontroller .how为此创建全局文件。

提前感谢。

2 个答案:

答案 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语句的应用程序来加载正确的语言。