I've got a real pain with my current project which has few Localizable.strings files and the problem is that the language doesn't change when user change it in system settings - NSLocalizedString macros continues to return previous language strings. I can't really undestand what wrong, I've been doing everyhing 'like in manual'. Neigher app restarting nor device restarting helps. Only reinstall does.
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
NSString *currentLanguage = [languages objectAtIndex:0];
this always returns the language being set on application first launch.