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)
为了您的应用程序的所有未来用户的利益,请将其放在Main方法中:
CultureInfo.DefaultThreadCurrentUICulture = Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
Run Code Online (Sandbox Code Playgroud)
它将为他们省去很多麻烦,找到与翻译得不好的错误消息等效的英文。
最后,“尖锐”的解决方案可能如下:
[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显式设置为用户的浏览器接受语言。
| 归档时间: |
|
| 查看次数: |
13845 次 |
| 最近记录: |