在阅读了 Jacob 的答案并进行了一些测试之后,这是对我有用的代码:
int main(int argc, char *argv[])
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// Reset system defaults to get the complete language list.
[defaults removeObjectForKey:@"AppleLanguages"];
// Default language choosen by user.
NSString *defLanguage = [defaults objectForKey:@"Language"];
NSArray *sysLangugages = [defaults arrayForKey:@"AppleLanguages"];
// System default language: first element of array.
NSString *sysLanguage = [sysLangugages objectAtIndex:0];
NSArray *array = [NSArray arrayWithObjects:defLanguage, sysLanguage, nil];
[defaults setObject:array forKey:@"AppleLanguages"];
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
更改默认语言后只需重新启动应用程序,所有本地化资源都会更改:字符串和情节提要。
还在 AppDelegate.m 中尝试了这段代码,方法是:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
但它不起作用。只有在 main.m 中才能正常工作。我不知道为什么。
请注意,使用此代码,您可以拥有 iOS 不支持的语言的应用程序。
问候,
琼巴