Есть ли решение для 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)
Мне нужно убедиться, что я получаю значение в этом формате. Есть ли другой способ? Спасибо
Да. Это то, что я попробовал вначале. Но на одном из наших устройств iOS значение каждый раз не устанавливается (пустая строка). Даже если я меняю язык на телефоне. Некоторые веб-поиски приводят к ключу, что это неправильный способ получить текущую культуру/язык для ios. – Joehl
У вас есть проблемы с некоторыми конкретными языками? Поскольку я тестировал CultureInfo.CurrentUICulture на своем телефоне, и все работает отлично. Какую версию Xamarin вы используете? –
Я думаю, что проблема заключается в самом языке. Телефон поддерживает швейцарско-немецкий язык. И это не стандарт ISO 639-1. В этом случае CultureInfo.CUrrentUICulture не установлен. Другие устройства iPhon, которые не швейцарско-немецкие, работали. – Joehl