I\'m in the processes of internationalizing an iPhone app - I need to make programmatic changes to certain views based on what the user\'s current locale is. I\'m going nut
It shows the correct locale when on a real iPad. However, the simulator has it´s own iOS which by default is set to en-US. Go to the simulator iOS preferences and switch language & region to the one you want.
That does the trick.
To get the current device language use this instead:
NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
As described here: Getting current device language in iOS?
[NSLocale currentLocale]
is based on the device's Region Format settings, not the language. If the region is set to United States you will get en_US regardless of which language you're using.