Где я могу установить начальное значение CurrentUICulture в Windows XP?

StackOverflow https://stackoverflow.com/questions/1492974

Вопрос

Я пытаюсь сделать так, чтобы мое приложение поддерживало несколько языков.Я сделал несколько сателлитных сборок и теперь хочу протестировать, как будет выглядеть приложение, например, при запуске на французской машине.

В [Панель управления-> Региональные и языковые параметры] Я могу выбрать французский (Франция) на вкладке Региональные параметры, и я могу выбрать французский (Франция) на вкладке Дополнительно.

Но этого недостаточно, чтобы мое приложение считало, что оно французское.

Если я добавлю этот код в начало моей основной функции,

[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
    CultureInfo^ ci1 = Thread::CurrentThread->CurrentCulture;
    CultureInfo^ ci2 = Thread::CurrentThread->CurrentUICulture;

тогда ci1->Name - это fr-FR но ci2-> Имя есть en-US.

И, к сожалению для меня, для использования французской спутниковой сборки нынешняя культура - это та, которая должна быть fr-FR.

Я не хочу устанавливать CurrentUICulture на то же значение, что и CurrentCulture в коде - я хочу изменить значение по умолчанию с помощью панели управления или чего-то еще.

Я видел много сообщений в Интернете о том, как обнаружить событие при изменении текущей культуры, но ничего, что подсказывало бы мне, как это изменить!

Это было полезно?

Решение

Пожалуйста, посмотрите Как изменить язык, используемый для отображения меню и диалоговых окон в MUI:

Windows MUI упрощает пользователям перевод пользовательского интерфейса (меню и диалоговых окон) на язык, который им наиболее подходит .До 33 различных языки могут быть установлены на компьютере администратором (любым пользователем с правами администратора) с помощью программы muisetup.exe.

.NET - это CurrentUICulture отражает эту настройку.

Другие советы

Это может быть возможно, а может и не быть, в зависимости от вашей установки Windows.Смотрите раздел "Неявная настройка свойства CurrentUICulture" по адресу http://msdn.microsoft.com/en-us/library/441487wx (v= против100).aspx для получения подробной информации.Для получения дополнительной информации о поведении в различных версиях Windows см. http://msdn.microsoft.com/en-us/library/dd374098 (ПРОТИВ 85).aspx.

Ответ немного изменился для Windows 8 (эти шаги были выполнены в 8.1).

Вы должны иметь возможность изменить язык отображения на другой язык в Панель управления> Часы, язык и регион > Language.Обратите внимание на "должен".

У меня было чертовски много времени на то, чтобы сменить CurrentUICulture в моем консольном приложении.Чтобы изменить это, я закончил тем, что:

  • изменение языка на японский
  • загрузка и установка языкового пакета (все из меню Language:круто!)
  • перемещение японского языка на первое место в разделе "Языковые настройки"
  • затем в разделе "Изменить форматы даты, времени или чисел"
    • > Форматы:изменение "Формата" на японский
    • > Местоположение:изменение "Домашнего местоположения" на Японию
    • > Административный:изменение "Текущего языка для программ, отличных от Юникода" на японский
  • все еще в Административном в разделе "Копировать настройки" был показан текущий пользователь:Язык отображения как английский
    • на компьютере коллеги язык отображения отличался от используемого по умолчанию CurrentUICulture, так что , вероятно , в этой истории есть еще кое - что
  • До этого я перезагружался несколько раз, но теперь с каждый настройка на Японию / Японский Я перезагрузил

И наконец, наконец CurrentUICulture больше не был англичанином!Я не уверен, какой шаг решил проблему, но перезагрузка была необходима.

CurrentCulture на самом деле это довольно легко изменить.Предыдущий шаг форматирования изменит его, когда вы нажмете OK / Применить, перезагрузка, путаница или ругательства не требуются!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top