如何在显示win32 / .net例外消息时使我的应用程序始终使用英语?
我收到了这条消息,看起来有人使用babelfish来翻译它(它是瑞典语): “System.ComponentModel.Win32Exception:Programmet kunde inte starta eftersom programmets sida-vid-sidakonfigurationärfelaktig。”
非常无益,谷歌有4次点击,没有一个有用。 所以我必须猜测原始邮件是什么,并谷歌。 (原来是:“应用程序无法启动,因为它的并排配置不正确。”)
这一次,找出原始的错误信息非常简单,从一开始就用英文留言当然会节省我的时间。
那我该怎么做?
答案 0 :(得分:9)
您可以尝试将Thread.CurrentThread.CurrentUICulture
和/或.CurrentCulture
设为CultureInfo("en-US")
。
答案 1 :(得分:4)
不应该翻译异常的原因(严重)。 记录异常时,使用单一语言进行muc更有意义。我不敢相信微软除了UICulture之外没有想到这样做的方法,这基本上是一个非选择:(
答案 2 :(得分:2)
如果是ASP.NET应用程序,您可以在web.config(*)中设置UI语言:
<system.web>
<globalization ... uiCulture="en-US" ... />
</system.web>
对于其他应用程序,默认使用当前用户的区域设置,您必须明确覆盖它 - 例如Thread.CurrentUICulture = new CultureInfo(“en-US”)。
(*)警告 - 如果配置文件中的错误导致在处理元素之前抛出异常,您将获得默认的uiCulture。
答案 3 :(得分:2)
强制异常以不同的语言显示对用户来说似乎有点苛刻......你能否与消息一起显示错误代码?然后,用户将获得他们可以理解的内容,并且您可以查找已翻译版本的错误代码。
我不是.net家伙所以我不知道这是否可行,只是一个想法。
答案 4 :(得分:0)
如何始终使用我的应用程序 显示win32 / .net时使用英文 例外消息?
首先,不向用户显示win32 / .net异常消息。您应该处理异常而不是向用户显示异常。
默认情况下,异常消息将以当前的UI语言显示(如果安装了适当的语言包,否则它们将回退到英语)。您可以更改更改Thread.CurrentThread.CurrentUICulture属性的异常消息,但这会影响应用程序的整个GUI。