Crear un objeto literal:
var messages = {
welcome: "Welcome",
goodbye: "Goodbye",
error: "Something bad happend. Sowwy!"
};
que luego se puede hacer referencia, así:
if (error) alert(messages.error);
Esto funciona muy bien si se desea implementar varios idiomas. Lo que suelo hacer es incluir un archivo del lado del servidor que muestre un objeto de "mensajes" de acuerdo con el idioma seleccionado en la configuración de la aplicación o de acuerdo con la UI-culture (en el caso de ASP.NET).
Así es como usted lo utilizaría, en línea:
<head>
<!-- messages.aspx renders out the object literal -->
<script type="text/javascript" src="messages.aspx"></script>
<script type="text/javascript">
/* when messages.aspx is included it provides you with an object literal
as a global variable. The example below would alert "Something bad
happend. Sowwy!" */
if (error) alert(messages.error);
</script>
</head>
Lo bueno de usar un objeto literal, es que el código es más prolija. En lugar de utilizar una matriz, como esta: alert(messages[0])
, haga esto: alert(messages.error)
que es un poco más explicativo.
En una nota lateral: todos sus mensajes se definen en un objeto, en lugar de estar definidos por un conjunto de variables, evitando así contaminar el espacio de nombres global.
En JavaScript puede modificar objetos en tiempo de ejecución. Así que si usted quiere añadir más mensajes al objeto, más adelante en su código, usted acaba de hacer esto:
messages.newMessageAddedLaterOnInTheCode = "This is a new message";