Получить текущий язык в CultureInfo

Как определить язык операционной системы, используя CultureInfo? Например, если в Windows установлен французский язык, мне нужно определить французский язык и загрузить fr данные файлов ресурсов.

5 ответов

Решение

Я думаю, что-то вроде этого даст вам текущий CultureInfo:

CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;

Это то, что вы ищете?

Это то, что я использовал:

var culture = System.Globalization.CultureInfo.CurrentCulture;

и это работает:)

Текущий язык системы определяется с помощью:

  CultureInfo.InstalledUICulture

"Получает CultureInfo, представляющий культуру, установленную вместе с операционной системой".

InstalledUICulture

Чтобы установить его как язык по умолчанию для использования потока:

   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, но для других языков?)

Другие вопросы по тегам