Me gustaría escribir sobre los cambios recientes llevados a cabo en Gesbit. Algunos más o menos menores, como, el uso de "instanceof" en lugar de la función "is_a()", para comprobar si un objeto es la instancia de una determinada clase o no. También he sustituido el uso de "readdir()", allí donde se usaba, por la clase "DirectoryIterator".

Me he percatado de que la clase "Themes" estaba incluyendo antes los archivos JavaScript y después los archivos CSS. Igual ocurría en el panel de administración de Gesbit, y, aunque no se trata de un error, sí que las páginas se ve de otro modo mientras carga: puesto que ya cuentan con su "estilo" mientras cargan los "scripts" necesarios.

Pero, esta entrada se titula como se titula por algo, evidentemente, y es que ahora en Gesbit queda más claro y diferenciado lo relativo a la internacionalización (i18n) y a la localización (l10n). En Gesbit venía usando una clase "Localize", que había llevado a cabo para algún proyecto anterior. Y también existía una clase "DateUtils", que estaba mezclando cosas.

Han sido necesarios varios cambios "a nivel interno", pero, no ha sido complicado, porque todo estaba más o menos claro. He creado una nueva clase "L10n", que contiene parte de los métodos que contenía, erróneamente, la clase "DateUtils". Ahora la clase "DateUtils" contiene sólo lo que se espera: utilidades relacionadas con fechas.

La clase "DateUtils" queda en clase estática, y, la clase "L10n" contiene lo relativo a la poca o mucha "localización" que puede llevarse a cabo en Gesbit: Nombres de meses, días, abreviaturas, todas correspondientemente traducidas, localizadas. Esta clase se instancia ahora en una variable "global", tal como se hacía antes con "DateUtils".

Y, por último, pero, no menos importante, la clase "Localize" pasa a llamarse "I18n", porque, efectivamente, más que para la localización de Gesbit, sirve para su "internacionalización", o para la posible "traducción" de textos y cadenas de caracteres. Todo esto para llamar a las cosas por su nombre, que es lo mismo que intentar no confundir.

¿Qué te parece? A mí me hacen especial ilusión estos cambios, porque, efectivamente, ahora queda más claro lo que se dedica a la localización y a la internacionalización, aunque a veces se entremezclan. Pero, lo que estaba claro es que la clase "DateUtils" estaba errada, y que la clase "Localize" existía porque no existían "I18n" y "L10n", como ahora.