【问题标题】:How to completely avoid localized .NET exception messages如何完全避免本地化的 .NET 异常消息
【发布时间】:2023-04-09 18:12:01
【问题描述】:

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

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

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

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

所以我想要的是:我希望能够在非英语 Windows 安装上始终获得英语异常消息(我想更改应用程序的线程文化)。

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

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

有什么方法可以配置或“破解”(例如通过替换资源文件)? 我是唯一一个认为翻译异常消息是 .NET 中可怕的设计缺陷的人吗?

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

【问题讨论】:

  • 不直接向最终用户显示异常消息怎么样?
  • @deerchao 他不想将它们展示给最终用户。他希望能够有效地使用它们进行调试。在互联网上查找有关异常的信息时,最好有英文原文。在法语中,异常似乎(通常)翻译得更好。但是我仍然浪费时间进行搜索引擎查询。
  • @Eilistraee 哦,如果是这样,请分享我的痛苦。我的解决办法是安装英文版的VS和.Net Framework,英文版的OS就更好了。
  • 你知道这个网站:)? unlocalize.com
  • @Shelest 不,我很高兴只有框架异常消息是英文的。

标签: .net


【解决方案1】:

删除所有 .NET 语言包。根据this(“.NET Framework 4.5 语言包包含翻译的错误消息和其他非英语语言的 UI 文本。如果您不安装语言包,此文本显示为英语”),应该是够了。

【讨论】:

  • 这依赖于您对客户端机器的控制,不是吗? IE。它使用global solution to a local problem(引用@RaymondChen)
  • 在 Windows 10 中,这是不可能的。它作为操作系统的一部分添加......您必须删除语言文件夹+所有附属程序集。并希望操作系统不要尝试修复它。
【解决方案2】:

在 Windows 10 上您可以执行此操作,但您需要更改显示语言。

那么你需要重新设置你的日期时间设置

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

【讨论】:

  • 这对我不起作用。我将所有内容都设置为英语(美国),但错误仍然以我的母语出现。
猜你喜欢
  • 2010-09-08
  • 1970-01-01
  • 1970-01-01
  • 2012-03-09
  • 2017-02-04
  • 2017-02-10
  • 1970-01-01
  • 2015-10-26
  • 1970-01-01
相关资源
最近更新 更多