我可以使用不同于用户设置的语言的iPhone应用程序吗?

时间:2011-06-27 16:24:12

标签: iphone ios cocoa-touch localization internationalization

我正在开发一个iPhone应用程序,并希望为它设置一个与用户位置不同的位置。我想拥有国际化的所有文件,因为Apple告诉我这样做但我希望能够选择这种语言。

Ex:用户正在使用德语,但我希望我的应用程序是英文的!

我希望用户只为应用程序设置语言,无论手机中选择何种语言,我该怎么做?

2 个答案:

答案 0 :(得分:1)

不使用框架类进行国际化。您必须在整个应用程序中构建自己的管道以更改标签,按钮等。

答案 1 :(得分:1)

语言是从NSUserDefaults加载的。根据{{​​3}},您可以使用[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"en"] forKey:@"AppleLanguage"]覆盖它并重新启动应用。

现在,问题是您需要重新启动应用程序!一个可怕的方式可能是这样的(未经测试):

UIApplication * app = [UIApplication sharedApplication];
[app openURL:...];
[[NSNotificationCenter defaultCenter] postNotificationName:UIApplicationWillTerminateNotification object:nil userInfo:nil];
[app.delegate applicationWillTerminate:app];
exit(0);

其中...是一个HTTP网址,可重定向到您的应用处理的自定义网址方案(www.ww)。

我不知道在不重新启动应用程序的情况下重新加载UI /语言的简单方法。