How to get the current iPhone language code
We are currently developing an iPhone app which requires localization support, and I ran into an issue while trying to get currently set language.
Cocoa Touch has a class called NSLocale which lets you query the language by writing the following code:
[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode];
At least, that’s what you’d expect. Actually, it gives you the language of the region format you have configured in your settings.
If you have your iPhone language set to ‘English’, but your region format is set to ‘Germany’, the call will return ‘de’ instead of ‘en’.
What you should really call is:
[[NSLocale preferredLanguages] objectAtIndex:0]
This gives you not the language associated with the region, but the language for which the device is actually configured.
comments powered by Disqus