My app supports localization for english and hungary languages.
I want to make default language as hungary instead of english if user sets default language other than english or hungary from phone settings .
For eg.If user's phone settings language is French,as my app is not support for french localization , so it should be launched in hungary as default not in english.
I have used following code in didFinishLaunchingWithOptions
method in app delegate :
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLanguages"];
[NSUserDefaults resetStandardUserDefaults];
NSLog(@"%@",[NSLocale preferredLanguages]);
NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
if ([language isEqualToString:@"en"])
{
NSArray *langOrder = [NSArray arrayWithObjects:@"en", nil];
[[NSUserDefaults standardUserDefaults] setObject:langOrder forKey:@"AppleLanguages"];
}
else
{
NSArray *langOrder = [NSArray arrayWithObjects:@"hu", nil];
[[NSUserDefaults standardUserDefaults] setObject:langOrder forKey:@"AppleLanguages"];
}
So, after the change in the language from phone setting [[NSLocale preferredLanguages] objectAtIndex:0]
immediately returns the string for the new language , ie. correct current language and also entered in correct condition in code.
But language will change only at second time relaunch of the app , not in first time launch.
So how can i do this ?
Thanks..