Подтвердить что ты не робот

Определить язык os из С#

Есть ли способ определить язык ОС из класса С#?

4b9b3361

Ответ 1

С классом System.Globalization.CultureInfo вы можете определить, что хотите.

С CultureInfo.CurrentCulture вы получаете культуру системного набора, с CultureInfo.CurrentUICulture вы получаете пользовательскую настройку культуры.

Ответ 2

К сожалению, предыдущие ответы не на 100% правильны.

CurrentCulture - это информация о культуре текущего потока, и она используется для операций, которые должны знать текущую культуру, но не показывать ничего. CurrentUICulture используется для форматирования дисплея, например, для правильного отображения DateTime. Поскольку вы можете изменить текущий поток Culture или UICulture, если вы хотите знать, что такое ОС CultureInfo, используйте CultureInfo.InstalledUICulture.

Кроме того, есть еще один вопрос по этому вопросу (более поздний, чем этот) с подробным ответом:

Получить язык операционной системы в С#.

Ответ 3

"System.Globalization.CultureInfo.CurrentUICulture.DisplayName". Это именно то, что вы хотите.

Ответ 4

Вы имеете в виду, настроена ли машина (например) на английском, французском или японском языках?

Посмотрите на класс CultureInfo, в частности CurrentCulture, который инициализируется из текущих региональных настроек ОС.

Ответ 5

Означает, что если система локализована в области и языке, вы можете использовать функцию Win32 API GetSystemDefaultLCID. Это означает следующее:

[DllImport("kernel32.dll")]
static extern uint GetSystemDefaultLCID();

Функция GetSystemDefaultLCID возвращает LCID. Он может отображать строку языка из следующей таблицы. Идентификаторы локалей, назначенные Microsoft

Ответ 6

Все приведенные выше ответы, похоже, дают вам только установленную ОС (в лучшем случае). Я столкнулся с проблемой, когда мне нужен фактический язык отображения, используемый в Windows. то есть пользователь установил стандартную инсталляцию Windows по умолчанию, но затем добавил языковой пакет для немецкого (de-DE) и установил это как свой язык отображения.

Чтобы получить это, я использовал System.Windows.Input.InputLanguageManager.Current.CurrentInputLanguage

Ответ 7

System.Threading.Thread.CurrentThread.CurrentCulture