如何完全避免本地化的 .NET 异常消息

How to completely avoid localized .NET exception messages

提问人:Anders Forsgren 提问时间:11/7/2012 最后编辑:CommunityAnders Forsgren 更新时间:7/22/2020 访问量:6638

问:

当我的 .NET 应用程序中发生错误时,我收到一条(在我的情况下)瑞典语的异常消息。这对于大多数目的来说都是无用的,因为。

  • 该消息通常只是原始(英语)异常消息 [1] 的翻译质量不佳的版本

  • 异常消息通常用于诊断问题,这通常包括谷歌搜索错误消息。这意味着猜测或使用 Web 服务来查找原始英文消息。

[1] 我不是在开玩笑。示例:在绑定失败的上下文中,“调用程序集”是完全模糊的。它被翻译为“称为集会”,因为英语如何对正在呼叫的人使用相同的词来表示它所调用的人。就好像有人用字典逐字翻译一样。

所以我想要的:我希望能够在非英语 Windows 安装上始终如一地获得英语异常消息(我不想更改应用程序的线程区域性)。

有一个类似的问题(英文中的异常消息?),但那是在日志记录的概念中。在这个层面上,我可以改变线程文化。

但我希望更改是全局性的,并且还包括“不是我的代码”例外。

有没有办法可以配置或“黑客”(例如,通过替换资源文件)? 我是唯一一个认为首先翻译异常消息是 .NET 中一个可怕的设计缺陷的人吗?

如果这是部分咆哮和部分问题,我很抱歉。

。网

评论

12赞 Eilistraee 11/7/2012
@deerchao 他不想向最终用户展示它们。他希望能够有效地使用它们进行调试。在互联网上查找有关例外的信息时,最好有原始的英文文本。在法语中,例外似乎(通常)翻译得更好。但我还是浪费了时间进行搜索引擎查询。
2赞 deerchao 11/7/2012
@Eilistraee 哦,如果是这样的话,请分担我的痛苦。我的解决方案是安装英文版的 VS 和 .Net Framework,英文版的操作系统更好。
2赞 Jan 11/7/2012
你知道这个网站:)吗?unlocalize.com
1赞 Anders Forsgren 11/8/2012
@HansPassant我不明白,堆栈跟踪只是说哪里出了问题,消息说出了什么问题?作为一名程序员,我两者都需要(如果我是 IT 人员,我当然会喜欢英语)。但这正是重点:需要能够适应任何看到它们的人。在我自己的机器上开发过程中,我是唯一阅读它们的人,瑞典语信息(即使对我作为瑞典语母语人士来说)也是无用的。
1赞 Anders Forsgren 11/8/2012
@Shelest不,我很高兴只有框架异常消息是英文的。

答:

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 上,您可以执行此操作,但您需要更改显示语言。

language setup

然后,您需要设置日期时间设置

date setup

您将拥有英文系统,但对于大多数程序员来说,这并不重要。

评论

0赞 Drak 8/3/2021
这对我不起作用。我已将所有内容设置为英语(美国),但错误仍然以我的母语显示。