System.Threading.Thread.CurrentThread.CurrentUICulture

ли способ определить язык операционной системы из класса c #?

Ответы на вопрос(6)

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

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

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

 Sven09 июн. 2011 г., 15:39
Это тоже не правильно.CurrentCulture используется для форматирования дат и чисел и тому подобное, иCurrentUICulture используется для поиска ресурсов.
 Pierre Arnaud08 окт. 2012 г., 11:02
Михай правильно понял.
 quetzalcoatl03 нояб. 2011 г., 17:53
Нет, Свен, в этом вы на самом деле ошибаетесь, и Михай написал правильную вещь: CultureInfo.InstalledUICulture, похоже, представляет собой предопределенную информацию о культуре операционной системы. Я только что проверил вmsdn.microsoft.com/en-us/library/... и они четко говорят, что это система по умолчанию!
 theking224 дек. 2014 г., 22:17
Не правда, Кецалькоати, Свен прав. Если я изменю форматы даты, времени и числа на панели управления, это изменит CurrentCulture, но не изменит CurrentUICulture. CurrentUICulture используется или должен использоваться для отображения элементов пользовательского интерфейса. Пожалуйста, не используйте CurrentCulture для этого, так как конечный пользователь может хотеть отображать цифры по-другому, но все же хочет иным непротиворечивым интерфейсом. Она не могла быть обеспокоена Установленной культурой все же.

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

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

Решение Вопроса

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

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

 rpattabi09 мар. 2012 г., 07:13
Михай ответ правильный.
 quetzalcoatl03 нояб. 2011 г., 17:55
Свен указал на проблему правильно, но фактический ответ находится в другом месте. Пожалуйста, смотрите ответ Михая ниже и ссылку на MSDN, которую я включил в комментарий
 Sven09 июн. 2011 г., 15:38
Ваше описание двух свойств неверно.CultureInfo.CurrentCulture это культура, которая используется для форматирования дат, чисел и т. д. и инициализируется из языкового стандарта пользователя (региональные настройки).CultureInfo.CurrentUICulture является культурой, используемой менеджером ресурсов для поиска строковых ресурсов, и инициализируется из языка пользовательского интерфейса ОС.

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

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

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

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

настроен ли аппарат (например, на английский, французский или японский)?

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

 theking224 дек. 2014 г., 22:23
Вместо этого взгляните на CurrentUICulture. CurrentCulture не совсем то, что вы хотите. (См. Мои комментарии выше)
 Lost16 сент. 2013 г., 21:09
Я думаю, что мы находимся на той же странице, но чтобы точно ответить на то, что он спрашивает: ответ «System.Globalization.CultureInfo.CurrentUICulture.DisplayName»

Ваш ответ на вопрос