Pergunta

Como posso fazer minha aplicação sempre usar o Inglês ao exibir win32 / .net mensagens exceções?

Eu tenho esta mensagem, parece que alguém usou babelfish para traduzi-lo (é sueco): "System.ComponentModel.Win32Exception:. Programmet kunde inte starta Eftersom programmets sida-vid-sidakonfiguration är felaktig"

extremamente inúteis e Google teve um colossal 4 hits para ele, nenhum deles útil. Então eu tenho que adivinhar o que a mensagem original e google que. (É foi: "A aplicação falhou ao iniciar porque sua configuração side-by-side é incorreta".)

Desta vez, foi bastante simples de descobrir o que a mensagem de erro original, tendo a mensagem em Inglês desde o início seria, evidentemente me poupar tempo.

Então, como posso fazer isso?

Foi útil?

Solução

Você pode tentar definir Thread.CurrentThread.CurrentUICulture e / ou .CurrentCulture para CultureInfo("en-US").

Outras dicas

Mais uma razão por que as exceções não devem ser traduzidas (mal). Ao efetuar o login exceções, faz muc mais sentido fazê-lo em um único idioma. Não posso acreditar que a Microsoft não pensar em uma maneira de fazer isso que não UICulture, que é basicamente um não-opção: (

Se for uma aplicação ASP.NET, você pode definir o idioma da interface do usuário em web.config (*):

<system.web>
    <globalization ... uiCulture="en-US" ... />
</system.web>

Para outras aplicações, configurações regionais do usuário atual são usados ??por padrão, e você tem que substituí-lo explicitamente - por exemplo, Thread.CurrentUICulture = new CultureInfo ( "en-US").

(*) ressalva -. Se um erro nos resultados do arquivo de configuração em uma exceção sendo lançada antes do elemento é processado, você terá a uiCulture padrão

Forçar exceções para exibição em um idioma diferente parece um pouco dura para o usuário ... você pode exibir um código de erro, juntamente com a mensagem? Em seguida, o usuário receberá algo que eles podem entender, e você pode procurar o código de erro para a versão traduzida.

Eu não sou um cara de .net para que eu não sei se isso é possível, apenas uma idéia.

Como posso fazer minha aplicação sempre Inglês use ao exibir win32 / .net mensagens de exceções?

Em primeiro lugar, não mostram win32 / .net mensagens de exceção para os utilizadores . Você deve lidar com exceções em vez de mostrá-los para o usuário.

Por mensagens de exceção padrão será mostrado no idioma da interface do usuário atual (se pacote de idioma apropriado está instalado, caso contrário eles fallback para Inglês). Você pode alterar as mensagens de exceção mudando Thread.CurrentThread.CurrentUICulture propriedade, no entanto isso afetará toda a GUI do seu aplicativo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top