title: How to change iPhone app language during runtime?
body: <p>Is there a way to change the application language during runtime?</p>
  
  <p>So, after the change <code>NSLocalizedString</code> immediately returns the string for the new language.</p>
  
  <p>What I'm doing now is changing the language using the code below:</p>
  
  <pre><code>- (void)onChangeLanguage: (id)sender 
  {
      NSArray *lang = [NSArray arrayWithObjects:((InfoWhatever *)sender).language, nil];
      [[NSUserDefaults standardUserDefaults] setObject:lang forKey:@"AppleLanguages"];
      NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
      NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
      NSString *currentLanguage = [languages objectAtIndex:0];
  
      NSLog(@"Current language: %@", currentLanguage);
  }
  </code></pre>
  
  <p>The language will change but <em>only after restarting</em> the app.</p>