Мне нужно получить строку типа en_US или es_ES в iOS.
Очевидным методом является использование [NSLocale currentLocale] и получение информации о языке оттуда. Тем не менее, это дает вам "формат региона", а не фактический язык устройства, а это означает, что если у вас есть язык устройства на английском языке, но формат региона "испанский", он ошибочно сообщает es_ES.
Если вам нужен язык устройства, вы должны это сделать: [[NSLocale preferredLanguages] objectAtIndex:0]
Однако это дает вам язык, поэтому вы получаете что-то вроде en или es, без кода страны в конце.
Как я получу код страны правильно, как это делает Safari?