提问人:Anders Forsgren 提问时间:11/7/2012 最后编辑:CommunityAnders Forsgren 更新时间:7/22/2020 访问量:6638
如何完全避免本地化的 .NET 异常消息
How to completely avoid localized .NET exception messages
问:
当我的 .NET 应用程序中发生错误时,我收到一条(在我的情况下)瑞典语的异常消息。这对于大多数目的来说都是无用的,因为。
该消息通常只是原始(英语)异常消息 [1] 的翻译质量不佳的版本
异常消息通常用于诊断问题,这通常包括谷歌搜索错误消息。这意味着猜测或使用 Web 服务来查找原始英文消息。
[1] 我不是在开玩笑。示例:在绑定失败的上下文中,“调用程序集”是完全模糊的。它被翻译为“称为集会”,因为英语如何对正在呼叫的人使用相同的词来表示它所调用的人。就好像有人用字典逐字翻译一样。
所以我想要的:我希望能够在非英语 Windows 安装上始终如一地获得英语异常消息(我不想更改应用程序的线程区域性)。
有一个类似的问题(英文中的异常消息?),但那是在日志记录的概念中。在这个层面上,我可以改变线程文化。
但我希望更改是全局性的,并且还包括“不是我的代码”例外。
有没有办法可以配置或“黑客”(例如,通过替换资源文件)? 我是唯一一个认为首先翻译异常消息是 .NET 中一个可怕的设计缺陷的人吗?
如果这是部分咆哮和部分问题,我很抱歉。
答:
4赞
Expro
11/15/2012
#1
删除任何 .NET 语言包。根据此 (“.NET Framework 4.5 语言包包含非英语语言的已翻译错误消息和其他 UI 文本。如果不安装语言包,则此文本以英语显示“),这应该足够了。
评论
5赞
RB.
2/13/2014
不过,这取决于您对客户端计算机的控制权,不是吗?也就是说,它使用全局解决方案来解决本地问题(引用@RaymondChen)
3赞
Wolf5
2/5/2019
在 Windows 10 中,这是不可能的。它作为操作系统的一部分添加...您必须删除语言文件夹 + 所有附属程序集。并希望操作系统不要试图修复它。
-1赞
Icen
4/1/2020
#2
在 Windows 10 上,您可以执行此操作,但您需要更改显示语言。
然后,您需要设置日期时间设置
您将拥有英文系统,但对于大多数程序员来说,这并不重要。
评论
0赞
Drak
8/3/2021
这对我不起作用。我已将所有内容设置为英语(美国),但错误仍然以我的母语显示。
评论