Comento aquí ciertos cambios que he llevado a cabo en el plugin GbLightbox para Gesbit, porque me parecen ciertamente curiosos por lo menos. Este plugin tiene la característica de ser el primero que desarrollo que necesita la traducción de ciertas cadenas "en JavaScript". Es decir, el resto de plugins también son multilenguaje, pero, este necesitaba además que ciertas variables de JavaScript contuvieran las correspondientes cadenas localizadas.

Gesbit cuenta con una clase "JScript" (que acaso habría que revisar) que a su vez tiene un método que "imprime" variables de JavaScript con un determinado valor, y este era el método que he estado usando en GbLightbox, de manera que en el código fuente de las bitácoras en que uso el plugin, podía verse el código JavaScript necesario, es decir, las variables que contenían las cadenas que necesita el plugin debidamente traducidas. Pues bien, veamos los cambios.

En un primer momento se me ha ocurrido utilizar un "script" PHP. De este modo, en lugar de requerir el archivo JavaScript que pone en marcha el plugin, he pensado en que este script fuera en realidad procesado por PHP, de modo que ahí mismo podía llevar a cabo la traducción de las cadenas correspondientes. Sin embargo, esta solución pasaba por requerir el archivo de inicialización de Gesbit, claro está, para poder contar con los recursos necesarios.

He llevado a cabo esta solución, como digo, pero, acto seguido me he dado cuenta de que podía aún mejorarse. Efectivamente, estamos hablando de cinco o seis cadenas a traducir, y todo podía hacerse de una forma más sencilla. ¿Cómo? Preparando varios archivos JavaScript. Cada uno de los cuales inicializa el plugin en el lenguaje correspondiente. Al requerir los archivos JavaScript necesarios, se busca el que debería corresponder al lenguaje usado en Gesbit.

No obstante se comprueba antes la existencia de dicho archivo, y, de no existir, se requiere el archivo "por defecto", que corresponde al idioma inglés. Actualmente GbLightbox está disponible en inglés y en español, pero, añadir nuevos idiomas es tan sencillo como "clonar" uno de los archivos existentes, de alguno de los idiomas disponibles, y traducir las cadenas necesarias al idioma al que se quiera traducir el plugin. En todo caso, esta solución, parece mejor que la primera que intenté, y, por supuesto, parece en todo caso mejor que como se hacía al principio.

Ahora no se ve código JavaScript en el código XHTML de mis bitácoras, puesto que se requiere el archivo JavaScript correspondiente sin más. Pero además este es un archivo JavaScript, es decir, estático, no un archivo PHP, como en la primera solución, de modo que nos ahorramos los recursos necesarios para procesar dicho archivo, inicializar Gesbit, traducir las cadenas, etc. Creo que he tenido un momento de inspiración que sin duda tendré que tener en cuenta para futuros plugins. Esta parece ser una solución mucho más elegante, y me felicito por ello. ¡Que no tengo abuela! ;-)

PD. Si quieres ver este plugin "en acción", puedes echar un vistazo a esta entrada de mi bitácora personal.