Cocoa touch iPad应用程序启动后如何更改本地化

Cocoa touch iPad应用程序启动后如何更改本地化,cocoa-touch,xcode,ipad,localization,internationalization,Cocoa Touch,Xcode,Ipad,Localization,Internationalization,我目前正在开发一款iPad应用程序(iOS SDK v3.2)。该应用程序以多种语言本地化,即英语、德语、俄语等 我希望用户能够在应用程序启动后切换一些UI元素的本地化。实现这一目标的最佳方式是什么?NSLocalizedString始终选择在系统首选项中定义的区域设置,因此这没有帮助 注意:本地化都是使用.strings文件完成的,我的项目中没有本地化的NIB 为了使整个过程更加清晰,以下是一个示例: 当应用程序启动时,用户界面以英语显示。用户可以从UITableView中选择不同的语言,并使

我目前正在开发一款iPad应用程序(iOS SDK v3.2)。该应用程序以多种语言本地化,即英语、德语、俄语等

我希望用户能够在应用程序启动后切换一些UI元素的本地化。实现这一目标的最佳方式是什么?NSLocalizedString始终选择在系统首选项中定义的区域设置,因此这没有帮助

注意:本地化都是使用.strings文件完成的,我的项目中没有本地化的NIB

为了使整个过程更加清晰,以下是一个示例: 当应用程序启动时,用户界面以英语显示。用户可以从UITableView中选择不同的语言,并使用所选语言更新部分UI

我是否必须手动加载特定的Localizable.strings文件并一直解析它,或者是否有更好的选项来获取相关字符串

任何有用的建议都将不胜感激


事先非常感谢您,并致以最良好的问候。

我想我找到了我自己问题的答案:

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");

我想我找到了我自己问题的答案:

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");

谢谢@XCoder,这真是太好了

但是,我在NSLocaleLanguageCode上有一个应用程序BAD_EXC

我用这里提到的方法解决了这个问题:
谢谢@XCoder,这确实很有效

但是,我在NSLocaleLanguageCode上有一个应用程序BAD_EXC

我用这里提到的方法解决了这个问题: