2014-10-10 218 views
-2

我有一个选项,如阿拉伯语和英语在homepage.if用户选择一个阿比奇,那么整个应用程序将显示阿比奇language.i已听到关于nslocalizedstring我也找到了解决方案在here。 我不清楚如何显示一个enitre app.i可能有十个视图控制器那么我将如何从家里改变视图控制器。如何为此创建全局文件。如何在iOS中更改应用程序语言阿拉伯语或英语?

在此先感谢。

+0

http://stackoverflow.com/questions/34130853/how-to-force-an-app-to-change-language-in-ios-objective-c/34131794#34131794 – user3182143 2015-12-09 08:36:47

回答

1

NSLocalizedString通过遵循OS语言设置工作。所以你为每种语言创建一个字符串文件,而不是硬编码你的字符串。然后,应用程序将根据用户设备设置自动显示正确的语言。我不认为(尽管我可能是错的),这种方法适用于一个按钮。您可以在按钮按下时手动加载字符串文件。另一种解决方案是充满if语句的应用程序来加载正确的语言。

+0

感谢您的建议! !我已经完成了这个,不需要检查条件。 – karthikeyan 2014-10-13 09:27:24

+0

如果这解决了您的问题,请将其标记为帮助他人的正确答案。 – 2014-10-21 08:44:37

2

试试这个tutorial它贯穿您需要创建的整个配置和文件。你不需要在ViewController中更改10个ViewController语言,只需要将用户选择的语言设置为NSUserDefault值,稍后在ViewController中检查它是否需要根据语言执行特定的操作。

这以后设置语言为阿拉伯语

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键值的位置。

+0

感谢您的建议!!!我已经做到了这一点。 – karthikeyan 2014-10-13 09:27:55

+0

那么这是否解决了您的问题,或者您仍然有问题? – 2014-10-17 15:14:47

相关问题