我目前正在开发一款iPad应用(iOS SDK v3.2)。该应用程序本地化为多种语言,即英语,德语,俄语......
我希望用户能够在应用程序启动后切换某些UI元素的本地化。实现这一目标的最佳方法是什么? NSLocalizedString总是选择系统首选项中定义的语言环境,这样做无济于事。
注意:本地化都是使用.strings文件完成的,我的项目中没有本地化的NIB。
为了使整个过程更加清晰,以下是一个例子: 当应用程序启动时,UI将以英语显示。用户可以从UITableView中选择不同的语言,并使用所选语言更新UI的部分内容。
我是否必须手动加载特定的Localizable.strings文件并一直解析它或者是否有更好的选择来获取相关的字符串?
感谢任何有用的建议。
非常感谢您提前和最好的问候。
答案 0 :(得分:4)
我想我找到了自己问题的答案:
NSLocale *selectedLocale; // defined in the classes interface
NSString *language = [selectedLocale objectForKey:NSLocaleLanguageCode];
NSString *path = [[NSBundle mainBundle] pathForResource:language ofType:@"lproj"];
NSBundle *bundle = [NSBundle bundleWithPath:path];
self.textView.text = NSLocalizedStringFromTableInBundle(@"Yadayada", @"Localizable", bundle, @"Yadayada comment");
答案 1 :(得分:0)
谢谢@XCoder,这确实很有效。
但是我在NSLocaleLanguageCode上有一个应用程序BAD_EXC。
我用这里提到的方法解决了它: iPhone Localization - Get the phone's language code?