讀雅各答案和測試一點點之後,這是爲我工作的代碼:
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不支持的語言的應用程序。
問候,
JoanBa
也許是因爲它加載由達到didFinishLaunching點的信息。 很高興能幫到你! – 2012-04-30 14:59:28