Есть ли способ определить язык ОС из класса С#?
Определить язык os из С#
Ответ 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