[[NSLocale currentLocale] localeIdentifier]
даст вам строку, которая ближе к тому, что вы ищете. Для моего устройства здесь, в США, я получаю «en_US».
Если вы хотите более стандартно выглядящий «en-US», вы можете использовать [[[NSLocale currentLocale] localeIdentifier] stringByReplacingOccurrencesOfString:@"_" withString:@"-"]
вместо.
Если вам просто нужен код языка, вы можете передать вывод [[NSLocale currentLocale] localeIdentifier]
в [NSLocale componentsFromLocaleIdentifier:]
, который вернет вам NSDictionary. Один из ключей в словаре будет NSLocaleLanguageCode
, который будет иметь объект NSString только с кодом языка.