views:

926

answers:

5

Hi,

While working with ASP.NET MVC, I have noticed that exception messages issued by the .NET framework installed on my System are in German. I'd really prefer English messages, so I can post them on SO.

I know this has been asked before on SO, but strangely enough none of the suggested workarounds seem to work in my case. I have already tried the following:

  • switching my Windows system to an English locale and restarting Visual Studio
  • Setting Tools -> Options -> Environment -> International Settings -> Language to "English"
  • setting the thread locale to English right before the exception is thrown as follows:

    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture ("en-US"); Thread.CurrentThread.CurrentUICulture=new CultureInfo("en-US");

    //call my faulty method...

So, how can I make the .NET framework issue English language exception messages? And is there any approach that does this on a per-solution or even system-wide basis?

Edit: The exception is thrown while excuting my unit tests. I am not sure if this is the reason setting the thread's culture had not effect.

+1  A: 

Have you tried switching the culture immediately prior to reading the exception text? It may be that the localization occurs when you access the message - as opposed to when the exception object is created.

dommer
Good point. In my case, the exception is thrown while executing a unit test. I am not sure whether the exception text is read a different thread in this case.
Adrian Grigore
Could you try setting the current thread UI culture immediate prior to the "string message = ex.Message" code (or whatever you have)?
dommer
The message was read by the test runner. setting the UI language in the unit test method right before the exception is thrown did the trick.
Adrian Grigore
+1  A: 

Have you tried setting the UI culture to "en" in web.config? More info here.

Steve Haigh
+1  A: 

Apparently all the framework exception messages are bound to the installed OS language. So unless you install an English version of Windows The .Net framework exceptions won't appear in English. Even though it seems strange that setting the CurrentUICulture to "en-US" does not help, I used this sort of workaround hack to have English messages on my Dutch Windows OS.

Mez
+2  A: 

As I just found out, the problem was indeed related to having a different test project. While I have tried setting the UI language to English in my actual project, I did not do the same in the test project, which is why the exception messages were still in German when looking at the test results.

Setting the UI language in the test method right before the exception is thrown did the trick for me.

Adrian Grigore
A: 

Actually doesn't exists a good solution for this, vote on Connect for this approach

https://connect.microsoft.com/VisualStudio/feedback/details/591839/exception-localization-in-app-config-and-web-config

miNGue