Форсирование исключений английского языка в .NET Framework - PullRequest
35 голосов
/ 06 апреля 2009

При работе с ASP.NET MVC я заметил, что сообщения об исключениях, выпущенные платформой .NET, установленной в моей Системе, отображаются на немецком языке. Я действительно предпочел бы сообщения на английском языке, поэтому я могу публиковать их на SO.

Я знаю, что раньше об этом спрашивали на SO, но, как ни странно, ни один из предложенных обходных путей, похоже, не работает в моем случае. Я уже пробовал следующее:

  • переключение моей системы Windows на английский язык и перезапуск Visual Studio
  • Инструменты настройки -> Параметры -> Среда -> Международные настройки -> Язык "Английский"
  • установка языкового стандарта потока прямо перед тем, как возникнет исключение, следующим образом:

    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture ("en-US"); Thread.CurrentThread.CurrentUICulture = new CultureInfo ("en-US");

    // вызвать мой ошибочный метод ...

Итак, как я могу заставить .NET Framework выдавать сообщения об исключениях на английском языке? И есть ли подход, который делает это для каждого решения или даже для всей системы?

Редактировать: Исключение выдается при исключении моих юнит-тестов. Я не уверен, что по этой причине настройка культуры потока не повлияла.

Ответы [ 7 ]

9 голосов
/ 04 ноября 2011

Удалите пакет немецкого языка:

Пуск - Панель управления - Программы и функции - Microsoft .NET Framework (4 Client Profile) Языковой пакет DEU - Удаление (Deinstallieren)

Возможно, вам придется повторить удаление для каждой версии .NET Framework, которую вы там найдете.

9 голосов
/ 09 апреля 2009

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

Установка языка пользовательского интерфейса в методе теста перед тем, как сгенерировано исключение, сделала для меня свое дело

7 голосов
/ 06 апреля 2009

Вы пытались установить культуру пользовательского интерфейса на "en" в web.config? Подробнее здесь .

3 голосов
/ 07 апреля 2009

Очевидно, что все сообщения об исключениях платформы связаны с установленным языком ОС. Поэтому, если вы не установите английскую версию Windows, исключения .Net Framework не будут отображаться на английском языке. Даже при том, что кажется странным, что установка CurrentUICulture на «en-US» не помогает, я использовал этот способ обходного решения, чтобы иметь английские сообщения в моей голландской ОС Windows.

2 голосов
/ 11 ноября 2016

Я попробовал следующие изменения в файле web.config, и это помогло:

<system.web>
    <globalization uiCulture="en-US" culture="en-US" />
...
2 голосов
/ 31 августа 2010

На самом деле не существует хорошего решения для этого, проголосуйте за Connect для этого подхода

https://connect.microsoft.com/VisualStudio/feedback/details/591839/exception-localization-in-app-config-and-web-config

1 голос
/ 06 апреля 2009

Вы пробовали переключать культуру непосредственно перед чтением текста исключения? Возможно, локализация происходит при доступе к сообщению, а не при создании объекта исключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...