Получить текущий язык в CultureInfo
Как определить язык операционной системы, используя CultureInfo
? Например, если в Windows установлен французский язык, мне нужно определить французский язык и загрузить fr
данные файлов ресурсов.
5 ответов
Я думаю, что-то вроде этого даст вам текущий CultureInfo:
CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
Это то, что вы ищете?
Это то, что я использовал:
var culture = System.Globalization.CultureInfo.CurrentCulture;
и это работает:)
Текущий язык системы определяется с помощью:
CultureInfo.InstalledUICulture
"Получает CultureInfo, представляющий культуру, установленную вместе с операционной системой".
Чтобы установить его как язык по умолчанию для использования потока:
System.Globalization.CultureInfo.DefaultThreadCurrentCulture=CultureInfo.InstalledUICulture;
Я старался {CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;}
но это не сработало для меня, так как моя культура интерфейса отличалась от моей культуры числа / валюты. Поэтому я предлагаю вам использовать:
CultureInfo currentCulture = Thread.CurrentThread.CurrentUICulture;
Это даст вам культуру вашего пользовательского интерфейса (тексты на окнах, окнах сообщений и т. Д.).
Чтобы получить 2-х символьный идентификатор языка ISO 639-1, используйте:
System.Threading.Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName;
Windows.System.UserProfile.GlobalizationPreferences.Languages[0]
Это правильный способ получить текущий установленный язык системы. Настройка системного языка полностью отличается от настройки культуры, из которой вы все хотите получить язык.
Например: пользователь может одновременно использовать язык "en-GB" и язык "en-US". Используя CurrentCulture и другие культуры, вы получите "en-US", надеюсь, вы почувствуете разницу (это может быть незаметно для GB-US, но для других языков?)