2009-05-30 10 views
8

Me refiero a los mensajes de excepción que muestran que el desarrollador está utilizando incorrectamente una API. Por ejemplo, pasar incorrectamente un método nulo a. Entonces, el tipo de excepción que obtendrá el desarrollador la primera vez que ejecute su código incorrecto. El tipo de mensaje de excepción que nunca se debe mostrar al usuario de un sistema.¿Se deberían localizar los mensajes de excepción dirigidos al desarrollador?

Esto está relacionado con la teoría de que dado que el lenguaje de programación está en inglés, el programador ya tiene una comprensión del inglés. O al menos lo suficiente como para descifrar un mensaje de excepción.

http://www.codinghorror.com/blog/archives/001248.html (por favor, no hay discusión de esta teoría aquí)

Y sí sé que el marco .NET sigue el enfoque de "localizar todo".

+0

Estoy seguro de que los mensajes para los ingleses y los estadounidenses deben estar localizados: Ь –

Respuesta

19

Su pregunta se puede reformular como "¿deberían todos los desarrolladores recibir el mismo mensaje de error para que puedan buscarlo en Google?" ;)

Y la respuesta a eso es sí.

traducción significa que

  • el mensaje ya no es el mismo que el que escribió la API previsto. Puede llevar el mismo significado, o podría haber perdido algo en la traducción. Podría estar mal traducido, y en algunos casos podría ser completamente ilegible.
  • Quien lo lea no puede simplemente escribir el error en Google y ver qué hicieron los demás que obtuvieron este error. Porque todos los demás obtuvieron el mismo error en un idioma diferente.

Acerca del enfoque "localizar todo" de .NET, es horrible. Me he tropezado incontables veces, especialmente porque si no puede encontrar el recurso localizado, lo hace y no le da la versión en inglés. Le da un error de "No se pudo encontrar el recurso" en su lugar, descartando efectivamente la información de error real.

+0

En realidad, eso no es lo que estaba pidiendo. Estaba pensando simplemente desde el punto de lograr que el desarrollador entendiera lo que hicieron mal. Pero es un muy buen punto que no había considerado. +1 – Simon

+1

@jalf, creo que es por eso que todos los productos de IBM tienen números de mensaje (por ejemplo, DRL0122I), aunque el texto de error en sí mismo puede estar localizado. Siempre puede buscar el número de mensaje independientemente del idioma. – paxdiablo

+1

@Pax: cierto, y un buen punto. Eso resuelve la mitad del problema (permitiendo a las personas buscarlo en Google), pero no la parte sobre la comprensión del error en primer lugar. A menos que el desarrollador original domine el idioma de destino, es poco probable que su traducción sea perfecta. – jalf

0

Todo depende de quién va a mantener el código. Si los desarrolladores siempre serán ingleses, entonces tiene sentido mantenerlo todo en inglés.

Además, no estoy seguro si .NET Framework arroja sus mensajes de error de forma localizada. Siempre pensé que esos mensajes de error siempre están en inglés, por lo que tendría sentido mantener tus mensajes de error internos en inglés también.

+2

desde el constructor de NullReferenceException NullReferenceException pública(): base (Environment.GetResourceString ("Arg_NullReferenceException")) y aquí está pidiendo a alguien cómo convertir fuera de la localización para las excepciones http://stackoverflow.com/questions/721337/forcing-english-language-exceptions-in-net-framework – Simon

4

No, no creo que deban serlo (o al menos no lo hacemos, y somos bastante grandes :-). Hay suficiente esfuerzo involucrado en localizar todo lo que los usuarios ven sin tener que preocuparse por los desarrolladores también.

No hay idiomas principales que admitan palabras clave de idiomas extranjeros y bibliotecas estándar por lo que un comando rudimentario del idioma inglés ya es un requisito previo para los desarrolladores.

Por supuesto, si los desarrolladores desarrollan sus propias bibliotecas (o idioma), tienen la libertad de localizar o elegir un idioma que no sea el inglés.

2

En nuestra firma, permitimos la traducción de mensajes de excepciones/errores para nuestro compilador/IDE y proporcionamos el marco para traducir estas excepciones/mensajes de error, pero no hacemos la traducción nosotros mismos. Luego, le corresponde al cliente traducir si así lo desea.Hay varios países donde el inglés no es tan popular y donde se promueve el idioma propio. Por lo tanto, tiene sentido permitir los mensajes de error traducidos.

+3

Un mensaje de error no es lo mismo que un mensaje de excepción. Los mensajes de excepción son para desarrolladores. Los mensajes de error son para usuarios. Los mensajes de error deben ser traducidos. Los mensajes de excepción no deben traducirse. No me importa lo que diga la gerencia. –

+0

Casi siempre los mensajes de error son ex.Message por lo que son lo mismo. –

0

Si traduce sus mensajes de excepción, entonces también debe traducir todos los textos donde se producen mensajes de excepción. Eso incluye cualquier base de conocimiento o sistema de seguimiento de fallas que tenga, porque los usuarios y programadores querrán buscar el mensaje de excepción que ven en la pantalla.

+1

Los usuarios no desean buscar mensajes de excepción. No se puede esperar que los usuarios comprendan qué "Referencia de objeto no configurada en una instancia de un objeto". significa, incluso en su lengua materna. En realidad, parece un poco tonto cuando se lo ve desde una perspectiva no programática. –

Cuestiones relacionadas