Предотвратить перевод сообщений об исключениях на язык пользователя?

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

Вопрос

Как заставить мое приложение всегда использовать английский язык при отображении сообщений об исключениях win32 / .net?

Я получил это сообщение, похоже, что кто-то использовал babelfish для его перевода (это шведский): " System.ComponentModel.Win32Exception: Programmet kunde inte starta eftersom programmes sida-vid-sidakonfiguration or felaktig. "

Чрезвычайно бесполезный, и у Google было 4 хита для этого, ни один из них не помог. Так что я должен угадать, что было оригинальное сообщение, и Google это. (Это было: " Приложение не запустилось, потому что его параллельная конфигурация неверна. & Quot;)

На этот раз было довольно просто выяснить, каково было исходное сообщение об ошибке, и наличие сообщения на английском языке с самого начала, конечно, сэкономило бы мне время.

Так как мне это сделать?

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

Решение

Вы можете попробовать установить Thread.CurrentThread.CurrentUICulture и / или .CurrentCulture в CultureInfo (" en-US ") .

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

Еще одна причина, по которой исключения не должны переводиться (плохо). При регистрации исключений имеет смысл сделать это на одном языке. Я не могу поверить, что Microsoft не думала о способе сделать это, кроме UICulture, который в основном не вариант: (

Если это приложение ASP.NET, вы можете установить язык интерфейса в web.config (*):

<system.web>
    <globalization ... uiCulture="en-US" ... />
</system.web>

Для других приложений региональные настройки текущего пользователя используются по умолчанию, и вы должны явно их переопределить - например, Thread.CurrentUICulture = new CultureInfo (" en-US ").

(*) Предостережение - если ошибка в файле конфигурации приводит к исключению, генерируемому до обработки элемента, вы получите uiCulture по умолчанию.

Принудительное отображение исключений на другом языке кажется пользователю довольно жестким ... Вы можете отобразить код ошибки вместе с сообщением? Затем пользователь получит то, что он может понять, и вы сможете найти код ошибки для переведенной версии.

Я не парень .net, поэтому я не знаю, возможно ли это, просто идея.

  

Как мне сделать свое заявление всегда   использовать английский при отображении win32 / .net   сообщения об исключениях?

Прежде всего, не показывает сообщения об исключениях win32 / .net пользователям . Вы должны обрабатывать исключения, а не показывать их пользователю.

По умолчанию сообщения об исключениях будут отображаться на текущем языке пользовательского интерфейса (если установлен соответствующий языковой пакет, в противном случае они переключаются на английский). Вы можете изменить сообщения об исключениях, изменив Thread.CurrentThread.CurrentUICulture , но это повлияет на весь графический интерфейс вашего приложения.

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