0

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..

Parvezkhan
  • 381
  • 1
  • 2
  • 15
  • See here: http://stackoverflow.com/questions/1576904/how-to-change-iphone-app-language-during-runtime?rq=1 – Romain Mar 12 '14 at 07:12
  • Problem solved, I just put same code in main.m before before UIApplicationMain() is called.Now worked fine. – Parvezkhan Mar 12 '14 at 07:42

0 Answers0