Разница меду InstalledUICulture и CurrentUICulture

252
03 декабря 2017, 10:43

Вопрос: если установлен другой языковой пакет для ОС, то CurrentUICulture какой даст результат? Установленный язык ОС или языкового пакета?

Нет возможности проверить.

Answer 1

Разница в том, что это совершенно разные вещи.

CultureInfo.InstalledUICulture содержит, понятно, системный язык. Он не меняется, очевидно. Его значение получается из вызова GetSystemDefaultUILanguage. Эта функция возвращает системный язык по умолчанию (то есть, язык, на котором система инсталлировалась), но не язык языковых пакетов.

CultureInfo.CurrentUICulture — это текущий язык данного потока. Его можно установить в любое значение в любой момент.* Поэтому он имеет право меняться в течение пробега программы.

Начальное значение CultureInfo.CurrentUICulture равно CultureInfo.DefaultThreadCurrentUICulture (если не null). Если там null, то берётся значение GetUserDefaultUILanguage (не GetSystemDefaultUILanguage!).

Значение, возвращаемое GetUserDefaultUILanguage, равно выбранному языку текущего пользователя системы, если он установлен. Если нет, то текущему предпочитаемому языку системы. А если и его нет, то языку системы по умолчанию (то есть, языку, на котором система инсталлировалась).

Начальное значение CultureInfo.DefaultThreadCurrentUICulture есть null, но вы можете поменять его в любой момент.

*Начиная с .NET 4.6. В более старых версиях фреймворка нужно было идти через Thread.CurrentThread.CurrentUICulture.

READ ALSO
Передача переменных и использования их (C#)

Передача переменных и использования их (C#)

Хочу передать переменные (Swt, Srt) из формы Settings в Main, и использовать ихПроблема в том что при запуске программы WorkDelay и RecreationDelay создаются пустыми...

328
Синхронизация потоков WPF

Синхронизация потоков WPF

Создаю я второй поток для расчетов параллельных, расчеты в циклеВ итоге, чтобы после итерации добавить данные в таблицу основного потока,...

360
Эхо клиент сервер

Эхо клиент сервер

Здравствуйте, реализую клиент-сервер по типу-эхо: клиент каждые 10 секунд шлет пакет серверу, а тот отвечаетЕсли нужно отрубить клиента, то все...

288
Как получить доступ к классу настроек приложения из библиотеки dll?

Как получить доступ к классу настроек приложения из библиотеки dll?

Имеется приложение и подключенная к нему библиотекаНеобходимо из библиотеки изменить некоторые настройки (user settings)

244