c# exception globalization

c# - ¿Deberían globalizarse los mensajes de excepción?



exception globalization (4)

Si vas a ser el único que se encargará de las excepciones, déjalas en un idioma que puedas entender o dales códigos para que puedas buscarlas en tu idioma nativo.

Estoy trabajando en un proyecto y estoy empezando a hacer todo el trabajo necesario para globalizar la aplicación. Una cosa que aparece bastante a menudo es si globalizar los mensajes de excepción, pero asegurando que string.Format utiliza CultureInfo.CurrentCulture en lugar de CultureInfo.InvariantCulture. Además, esto significaría que los mensajes de excepción se almacenarían en archivos de recursos que se pueden marcar como específicos de cada cultura.

Entonces, la pregunta es si los mensajes de excepción deberían globalizarse o deberían dejarse en InvariantCulture o en el país del autor; en mi caso en-US.


Supongo que por globalizar, te refieres a i18n obediente, que generalmente se llama internacionalizar. Sí, internacionalice todas las partes visibles de la GUI, incluidos los mensajes de diagnóstico. El archivo de registro, que es donde los desarrolladores deben ir para obtener la información real, como el seguimiento de la pila, no debe ser internacionalizado.


típicamente, yo no.

Globalice las cadenas que puede ver un usuario y no permita que sus mensajes de excepción se filtren hasta la interfaz de usuario, ¿verdad?

¿Derecha? :)


Los mensajes de excepción rara vez se deben mostrar directamente al usuario. Debe pensar en el consumidor para cada cadena. Obviamente, las piezas de texto en la interfaz de usuario necesitan internacionalización, pero si un mensaje de excepción solo se verá por soporte (o será visible para el usuario y luego se enviará por correo electrónico para que haga clic en un botón), entonces ¿cuál es el beneficio de traducirlo?

Si vas demasiado lejos, no solo puedes perder el tiempo y el esfuerzo (y puede que te cueste mucho ) sino que también harás que tu apoyo sea más difícil. Realmente no desea tener que leer archivos de registro escritos en un idioma extranjero y traducirlos a su lengua materna.

Tiene sentido que Microsoft internacionalice sus mensajes de excepción, ya que los leerán desarrolladores de todo el mundo, pero a menos que sea multinacional con desarrolladores en varios países que no comparten un idioma común, no traduciría mensajes. que son realmente para dev / support.