Uno de los problemas con los que nos encontramos al desarrollar una aplicación rica en Javascript es la falta de idiomatización desde el cliente. Generalmente se suele usar un sistema de variables que cargamos desde un lenguaje de servidor y que al llegar al usuario las frases ya están en el idioma seleccionado.
Hoy via Ajaxian, descubro l10n.js, una librería javascript que permite realizar esta idiomatización desde el cliente, usando una estructura JSON donde alojas las frases en los diferentes idiomas.
{
"en": {
"l10n.js demo": "English - l10n.js demo",
"You are viewing the original page locale.": "You are viewing an English localization of this page."
},
"pt": {
"en": "pt",
"l10n.js demo": "Português - Demo do l10n.js",
"You are viewing the original page locale.": "Vocé esta a ver uma localização Portuguesa desta página."
},
"es": {
"en": "es",
"l10n.js demo": "Español - l10n.js demo",
"You are viewing the original page locale.": "Mira ustéd una versión español de esta pagina."
},
"fr": {
"en": "fr",
"l10n.js demo": "Français - l10n.js démo",
"You are viewing the original page locale.": "Vous sont voyez une localisation français de cette page."
}
}
Como podemos ver, se trata de una estructura sencilla que aprovecha la potencia de JSON (clave-valor) para identificar las cadenas de texto que deseamos mostrar al usuario.
El fichero, lo cargaremos como un fichero externo usando el elemento <link /> en nuestro <head />
<link rel="localizations" href="localizations.json" type="application/x-l10n+json" />
Con el diccionario cargado, solo tendremos que cargar la libraría javascript y empezar a editar nuestro código para que las cadenas de texto aparezcan en el idioma deseado.
<script type="text/javascript" src="path/to/l10n.js"></script>
Automáticamente la librería nos extiende nuestros objectos String
para que dispongamos del método toLocaleString()
que nos permite cargar la cadena en el idioma del usuario. Tenemos una API más completa donde ver las opciones disponibles.
13 comentarios, 1 referencias
+
#