2013-04-04 5 views
0

В моем приложении iOS есть опция выбора языка.
Его серверное приложение, которое получает все строки с сервера, которые должны отображаться в приложении.
В одном из представлений мне нужно преобразовать текст в «верхний регистр», для чего я использую метод upperCaseString NSString. Это хорошо работает для английского языка. Но для других языков, таких как французский, китайский, русский, немецкий и т. Д., Это может создать проблему. Итак, я должен использовать «uppercaseStringWithLocale» для соответствующей строки верхнего регистра поставщика.
Мой вопрос в том, как создать NSLocate и передать его методу «upperCaseStringWithLocale» на основе имени языка. Я знаю, какой язык приложения выбрал пользователь. Могу ли я создать локальный объект на основе имени языка?iOS NSString - создание верхнего регистра на основе языка

+1

Локаль и язык не имеют соответствия 1-к-1. Вам нужно будет использовать код локали. –

ответ

0

Я думаю, что вы ищете:

NSString *theLocaleIdentifier = @"es_ES_PREEURO"; 
[[NSLocale alloc] initWithLocaleIdentifier:theLocaleIdentifier]; 
+0

Могу ли я получить карту языка и локальные идентификаторы, которые я могу поддерживать в приложении? – Satyam

+0

@Satyamsvv Вы можете получить все идентификаторы локали, используя '[NSLocale availableLocaleIdentifiers]' –

+0

@Satyamsvv. Вы также можете получить конкретный идентификатор локали, если знаете код языка и код страны, используя '[NSLocale localeIdentifierFromComponents: @ {NSLocaleLanguageCode: @" en ", NSLocaleCountryCode: @" US "}];' –