我正在开发具有多语言支持的应用程序。 正如你所期待,不时我加载使用这样的一些代码笔尖文件:然后在iOs中手动加载不同的本地化笔尖
self.currentController = [[newClass alloc] initWithNibName:@"CustomController" bundle:nil];
该应用程序将加载从它的语文件夹对应的本地化版本的厦门国际银行。 现在,我想知道是否可以手动加载本地化的nib文件。 例如,而不是简单地加载CustomController,装载英语/法语/德国/等版本CustomController的。
有没有办法实现这个目标?
非常感谢您的帮助!
P.S.我知道这可能不是改变语言在iPhone/iPad的应用程序的正确方法,但这不是我的决定
[后来编辑] 这看起来有点怪异,像一个黑客,但它似乎处理(搬入德国笔尖):
NSString* path= [[NSBundle mainBundle] pathForResource:@"de" ofType:@"lproj"];
NSBundle* languageBundle = [NSBundle bundleWithPath:path];
self.currentController = [[newClass alloc] initWithNibName:@"CustomController" bundle:languageBundle];
我发现了尖的位置:http://learning-ios.blogspot.com/2011/04/advance-localization-in-ios-apps.html
感觉并不完全正确不过,如果有其他的解决方案也是,我想知道。 对于初学者来说,我觉得这会给老版本的iOs带来麻烦,因为语言文件夹有不同的命名约定
检查是否可以帮助你:http://stackoverflow.com/questions/598020/objective-c-cocoa-internationalization-with-nibs-is-that-really-a-good-idea – Peres 2012-01-03 12:13:04
它的确如此,但在这种情况下不适用。我对如何在不使用本地化笔尖的情况下实现这样的效果有一些想法。不幸的是,该应用程序现在使用它们,并且想法是尽快做到这一点,而不必做很多重写/重新考虑应用程序。如果我可以手动加载本地化的xib,那么将它转换起来非常容易 – BBog 2012-01-03 12:18:35
但是我们正在谈论在运行时做这件事吗?例如,我有英国英国的笔尖,然后我进入设置并将语言切换到通道,它会改变? – Peres 2012-01-03 12:34:15