即时更改iOS应用程序的语言

tom*_*zzo 25 iphone localization objective-c ios xcode4

我正在编写一个iOS应用程序,我希望用户能够独立于iPhone或iPad的语言更改UI语言.问题是,当语言发生变化时,如何为当前显示的视图重新加载适当的NIB文件,如何加载相应的.strings文件以使其NSLocalizedString正常工作?

sor*_*rin 27

假设这de是用户选择的新语言,这应该可以解决问题.还要确保您重新启动当前视图.

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"de", nil] 
                                          forKey:@"AppleLanguages"];
Run Code Online (Sandbox Code Playgroud)

  • 重要的是,此语句在应用程序启动之前执行:在调用UIApplicationMain()之前,在main()函数的main.m中执行此操作. (9认同)
  • 如果您希望更改在应用程序启动后的某个时间立即生效,请添加[[NSUserDefaults standardUserDefaults] synchronize]; (4认同)