我曾通过localisableString和不同的xib来完成本地化,这只能使用NSLocale方法。但是应用程序的要求是,在应用设置视图中更改语言,而不管iPhone的语言如何,来实现本地化。
听起来是一个愚蠢的要求,但无论如何:您可以通过设置一个数组来更改应用程序的语言,该数组按用户默认键@"AppleLanguages"的首选语言顺序排列,例如:
//Set language to German:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSArray arrayWithObject:@"de"]
forKey:@"AppleLanguages"];
请注意,这仅影响您在更改设置之后加载的字符串/nib文件,因此您可能需要重新加载用户界面。
NSLocalizedString
的新调用也无法按预期工作。 您需要重新启动应用程序,这是一个UI噩梦。 - Mundi