Как получить языковой язык пользователя в Objective-C?

Я разрабатываю приложение для Mac OS X. Я хочу изменить содержимое индикации в зависимости от языкового стандарта (английский, испанский и т. Д.) Пользователя приложения. Как получить информацию о том, какой язык используется?

Ответы на вопрос(6)

NSString *language = [[NSLocale currentLocale] localeIdentifier];
NSLog(@"Language: %@", language);

output: Язык: en_US

или это:

NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0];
NSLog(@"Language: %@", language);

output: Язык: en

но нет необходимости делать то, что вы хотите. OS X имеетподдержка локализации встроен в ОС & # x2014; все, что вам нужно сделать, это предоставить соответствующие языковые файлы, и пользователь может выбрать, какой язык он хочет.

 06 июл. 2009 г., 08:15
Это не совсем та вещь, где вы можете просто привести пример кода, поскольку пользовательские интерфейсы Mac обычно хранятся в кончиках и, таким образом, на самом деле никакой код не отвечает. По существу, существует структура каталогов, которой должны следовать ресурсы вашего приложения, а остальная операционная система будет обрабатывать все остальное за вас. Прочитайте документы по локализации по ссылке, которую я вам дал, и вы увидите, как это работает. В случаях, когда вы визуализируете текст программно, вы обычно используете функцию NSLocalizedString ().
 freddiefujiwara06 июл. 2009 г., 07:19
Спасибо вам большое! Я счастлив, если вы дадите мне несколько примеров кодов
NSLog(@"localeIdentifier: %@", [[NSLocale currentLocale] localeIdentifier]);
 08 июн. 2014 г., 07:13
[[NSLocale currentLocale] displayNameForKey:NSLocaleIdentifier value:[[NSLocale currentLocale] localeIdentifier]] может использоваться для получения простой версии на английском языке localeIdentifier

то в iOS 9 и более поздних версиях произошли изменения, при которых теперь возвращается [NSLocale предпочитаемый язык], а не только. Так что лучше сделать:

NSString *languageOS = [[NSLocale preferredLanguages] objectAtIndex:0];

if([[[UIDevice currentDevice] systemVersion] floatValue] >= 9.0) {
    languageOS = [[languageOS componentsSeparatedByString:@"-"] objectAtIndex:0];
}

проверьте документы Apple здесь:Интернационализация - Apple Developer Docs, Не зная больше о вашем конкретном приложении, было бы трудно предложить что-то еще здесь!

 NSLocale *locale = [NSLocale currentLocale]; 
 [locale objectForKey:NSLocaleLanguageCode]

Ваш ответ на вопрос