I am using the following code to return a localized string:
[self.languageBundle localizedStringForKey:key value:key table:nil];
In case of English, there is no problem. However, for Dutch, it defaults to English. To make everything clear, self.languageBundle is an empty bundle that's copied in the first launch. Then two localization directories are created (en.lproj and nl.lproj), and Localizable.strings file is created in both directories and filled with correct localization strings (I checked them).
I change the language using:
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"nl"]
forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
However, it still loads localization inside en.lproj instead of nl.lproj