被翻译成用户的语言防止异常消息?
-
10-07-2019 - |
题
我如何显示的Win32 / .NET异常消息时,我的应用程序始终使用英语吗?
我得到这个消息时,它看起来像有人用Babelfish平台来翻译它(这是瑞典): “System.ComponentModel.Win32Exception:Programmet的Kunde INTE启动市场eftersom programmets黄花稔-VID-sidakonfiguration AR felaktig”
非常无益的,和谷歌有高达4次命中的话,没有人帮助。 所以我要猜一下原来的信息是和谷歌这一点。 (它是:“应用程序未能启动,因为其侧由端配置不正确”)
这一次是相当简单的找出原始的错误消息是,从一开始就具有英语消息当然会救我的时间。
那么,我该怎么办?
解决方案
可以尝试设置Thread.CurrentThread.CurrentUICulture
和/或.CurrentCulture
为CultureInfo("en-US")
其他提示
更有理由为什么例外不应翻译(严重)。 当登录例外,它使睦更有意义做一个单一的语言。我不能相信微软没有想办法做多的UICulture,这基本上是一个非选项这个其他:(
如果它是一个ASP.NET应用程序,您可以设置用户界面语言在web.config中(*):
<system.web>
<globalization ... uiCulture="en-US" ... />
</system.web>
对于其他的应用,当前用户的区域设置默认情况下使用,你必须明确地重写它 - 例如, Thread.CurrentUICulture =新的CultureInfo( “EN-US”)。
(*)警告 - 如果处理的元素之前被扔在一个异常的配置文件结果的错误,你将得到默认的UICulture
强制例外不同的语言来显示似乎有点苛刻的用户...你可以随着消息显示错误代码?然后,用户将得到的东西,他们能理解,你可以查找错误代码的翻译版本。
我不是一个.NET的家伙,所以我不知道这是可能的,只是一个想法。
如何让我的应用程序始终 显示win32的时候使用英语/ .NET 例外消息?
首先,不显示的Win32 / .NET异常信息给用户的。你应该处理异常而不是将它们展示给用户。
默认情况下异常消息将在当前的界面语言显示(如果安装相应的语言包,否则回退到英语)。您可以更改异常消息改变 Thread.CurrentThread.CurrentUICulture 属性,但是它会影响你的应用程序的整个GUI。