2015-06-17 7 views
0

Есть ли решение для xamarin-ios, чтобы получить текущую культуру в формате (en_US, de_CH, ..)? Я читал так много статей в Интернете и здесь, в stackoverflow. Но я не могу найти хорошее решение для этого.Получить код страны и страны (ISO 639-1)

Следующий фрагмент кода возвращает этот формат не каждый раз. Иногда я получаю "gsw_DE" и так далее (ISO 639-2 вместо 639-1)

NSLocale.CurrentLocale.Identifier; 

Мое текущее решение, чтобы сделать это сам:

var languagecode = NSLocale.PreferredLanguages[0]; 

var result = String.Format("{0}_{1}", languagecode.Substring(0, 2), NSLocale.CurrentLocale.CountryCode); 

Выше обходной путь от: Get iOS current language (including country code)

Мне нужно убедиться, что я получаю значение в этом формате. Есть ли другой способ? Спасибо

ответ

0

Мы все еще в мире C#, не так ли? Вы можете использовать CultureInfo.CurrentUICulture.Name, и он предоставит вам «en-US» для «default» на английском и «en-GB» для английского UK. Языковые настройки - Общие - Язык & Регион - Язык iPhone.

+0

Да. Это то, что я попробовал вначале. Но на одном из наших устройств iOS значение каждый раз не устанавливается (пустая строка). Даже если я меняю язык на телефоне. Некоторые веб-поиски приводят к ключу, что это неправильный способ получить текущую культуру/язык для ios. – Joehl

+0

У вас есть проблемы с некоторыми конкретными языками? Поскольку я тестировал CultureInfo.CurrentUICulture на своем телефоне, и все работает отлично. Какую версию Xamarin вы используете? –

+0

Я думаю, что проблема заключается в самом языке. Телефон поддерживает швейцарско-немецкий язык. И это не стандарт ISO 639-1. В этом случае CultureInfo.CUrrentUICulture не установлен. Другие устройства iPhon, которые не швейцарско-немецкие, работали. – Joehl

Смежные вопросы