用英语强制例外语言

ser*_*hio 40 .net localization visual-studio

我的Visual Studio 2005是法语版,安装在法语操作系统上.我在调试或运行时收到的所有异常也都是用法语获得的.

但是,我可以做一些异常消息是英文的吗?对于护目镜,讨论等

我尝试了以下方法:

Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
throw new NullReferenceException();
Run Code Online (Sandbox Code Playgroud)

获得

你调用的对象是空的.

这当然很酷......但是,当我在法国项目上工作时,我不会硬编码强制Thread.CurrentUICulture为英文.我希望英语更改仅在我的本地计算机上,并且不要更改项目属性.

是否可以在不修改应用程序代码的情况设置异常语言?


在VS 2008中,将工具 - >选项 - >环境 - >国际设置 - >语言设置为"英语"wnd抛出相同的异常获取ex message en French,但是: alt text http://lh4.ggpht.com/ _1TPOP7DzY1E/S1V62xcvHAI/AAAAAAAAC7o/ckLDVFPKh5Y/S800/exception.png

Tho*_*que 13

您可以仅在调试版本中将当前文化设置为英语:

#if DEBUG
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
#endif
Run Code Online (Sandbox Code Playgroud)

  • 这不会使调试不可靠吗?该项目的其他部分可能取决于法国文化. (7认同)
  • @Kobi:大多数特定于文化的行为,如日期/时间/数字格式取决于CurrentCulture,而不是CurrentUICulture.CurrentUICulture仅影响使用的资源.如果除了法语之外的文化中没有用于资源的附属程序集,它将无论如何都会回归到默认文化 (2认同)
  • @serhio:如果您将UI文化设置为配置设置并且仅在您的个人版本中将其配置为"en-US",他可能不会斩首您. (2认同)

Ill*_*ack 6

为了您的应用程序的所有未来用户的利益,请将其放在Main方法中:

CultureInfo.DefaultThreadCurrentUICulture = Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
Run Code Online (Sandbox Code Playgroud)

它将为他们省去很多麻烦,找到与翻译得不好的错误消息等效的英文。


Sta*_*kov 5

这是已知问题。请在这里投票修复:异常处理/英语错误记录

Microsoft Connect 上的旧链接已停用。


ser*_*hio 4

最后,“尖锐”的解决方案可能如下:

[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

#if DEBUG
    // Add this; Change the Locales(En-US): Done.
    Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
#endif

    Application.Run(new Form1());
}
Run Code Online (Sandbox Code Playgroud)

但是我想要一个无需修改项目代码的解决方案。

来自MSDN

如果应用程序指定了CurrentUICulture ,则CurrentUICulture属性将被隐式设置。如果 未在应用程序代码中显式设置CurrentUICulture ,则由 Windows 2000 和 Windows XP 多语言用户界面 (MUI) 产品上的GetUserDefaultUILanguage函数进行设置,最终用户可以在其中设置默认语言。如果用户的UI语言没有设置,则会通过系统安装的语言来设置,也就是操作系统资源的语言。

如果应用程序是基于 Web 的,则 可以在应用程序代码中将CurrentUICulture显式设置为用户的浏览器接受语言。