varios traductor traducir script poner plugin para pagina otros multi idiomas idioma como c# .net exception globalization

c# - traductor - Evitar que los mensajes de excepción se traduzcan al idioma del usuario?



traducir mi pagina web a otros idiomas (5)

¿Cómo hago para que mi aplicación siempre use el inglés al mostrar mensajes de excepciones de win32 / .net?

Recibí este mensaje, parece que alguien usó babelfish para traducirlo (es sueco): "System.ComponentModel.Win32Exception: Programmet kunde inte starta eftersom programmets sida-vid-sidakonfiguration är felaktig".

Extremadamente inútil, y Google tuvo 4 hits para él, ninguno de ellos fue útil. Así que tengo que adivinar cuál fue el mensaje original y google eso. (Fue así: "La aplicación no pudo iniciarse porque su configuración lado a lado es incorrecta").

Esta vez fue bastante simple averiguar cuál era el mensaje de error original, tener el mensaje en inglés desde el principio, por supuesto, me ahorraría tiempo.

Entonces, ¿cómo hago eso?


¿Cómo hago para que mi aplicación siempre use el inglés al mostrar mensajes de excepciones de win32 / .net?

En primer lugar, no muestres mensajes de excepción de win32 / .net a los usuarios . Debe manejar excepciones en lugar de mostrarlas al usuario.

De forma predeterminada, los mensajes de excepción se mostrarán en el idioma de la interfaz de usuario actual (si está instalado el paquete de idioma apropiado, de lo contrario volverán al inglés). Puede cambiar los mensajes de excepción cambiando la propiedad Thread.CurrentThread.CurrentUICulture , sin embargo, afectará a toda la GUI de su aplicación.


Forzar excepciones para mostrar en un idioma diferente parece ser un poco duro para el usuario ... ¿puede mostrar un código de error junto con el mensaje? Luego, el usuario obtendrá algo que puede entender, y puede buscar el código de error para la versión traducida.

No soy un chico de .net así que no sé si esto es posible, solo una idea.


Si se trata de una aplicación ASP.NET, puede configurar el idioma de la interfaz de usuario en web.config (*):

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

Para otras aplicaciones, la configuración regional del usuario actual se usa de forma predeterminada, y usted tiene que anularla explícitamente, por ejemplo, Thread.CurrentUICulture = new CultureInfo ("en-US").

(*) advertencia: si un error en el archivo de configuración genera una excepción antes de que se procese el elemento, obtendrá la uiCulture predeterminada.


Puede intentar configurar Thread.CurrentThread.CurrentUICulture y / o .CurrentCulture en CultureInfo("en-US") .


Razón de más para que las excepciones no se traduzcan (mal). Al registrar excepciones, tiene mucho más sentido hacerlo en un solo idioma. No puedo creer que Microsoft no haya pensado en otra forma de hacerlo que no sea UICulture, que básicamente no es una opción :(