Ответ 1
Вы можете попробовать установить Thread.CurrentThread.CurrentUICulture
и/или .CurrentCulture
на CultureInfo("en-US")
.
Как заставить приложение всегда использовать английский при отображении сообщений об исключениях win32/.net?
Я получил это сообщение, похоже, кто-то использовал babelfish для его перевода (это шведский): "System.ComponentModel.Win32Exception: программные программы для запуска программ eftersom sida-vid-sidakonfiguration är felaktig."
Чрезвычайно бесполезно, и у Google было 4 удара, но ни один из них не помог. Поэтому я должен угадать, что такое оригинальное сообщение, и Google. (Это было: "Приложение не запускалось, потому что его бок о бок конфигурация неверна." )
На этот раз было довольно просто узнать, что такое исходное сообщение об ошибке, если сообщение на английском языке с самого начала было бы, конечно, сэкономить мне время.
Итак, как мне это сделать?
Вы можете попробовать установить 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" ).
(*) caveat - если ошибка в файле конфигурации приводит к тому, что исключение создается перед обработкой элемента, вы получите стандартную uiCulture.
Принудительные исключения для отображения на другом языке кажутся немного суровыми для пользователя... можете ли вы отобразить код ошибки вместе с сообщением? Тогда пользователь получит то, что они могут понять, и вы можете найти код ошибки для переведенной версии.
Я не парень .net, поэтому я не знаю, возможно ли это, просто идея.
Как мне сделать приложение всегда использовать английский при отображении win32/.net сообщения об исключениях?
Прежде всего, не показывайте пользователям сообщения об исключениях win32/.net. Вы должны обрабатывать исключения, а не показывать их пользователю.
По умолчанию сообщения об исключениях будут отображаться на текущем языке пользовательского интерфейса (если установлен соответствующий языковой пакет, в противном случае они возвращаются на английский язык). Вы можете изменять сообщения об ошибках, изменяя свойство Thread.CurrentThread.CurrentUICulture, однако это повлияет на весь графический интерфейс вашего приложения.