programación y pataletas

Aug 05
Permalink

Traducciones

Uso


t(:es, “Hello World”) => “Hola mundo”

t(:en, “Hola mundo”) => “Hello world”

t(:en, “Algo sin traducir”) => “Algo sin traducir”

Tabla en base de datos: translations => { _en_ => text, es => text, fr => text… }
Se usa como llave el texto en uno de los idiomas para no duplicar la entrada.

Ventajas


1. Persistencia en base de datos, suerte archivos.
2. Asquerosamente cacheable (suerte overhead de cargar/cerrar archivos).
3. Simple (aceptemoslo, modificar un .po no es fácil para un no programador).
4. Es muy fácil crear un editor de traducciones online. No conozco ningún editor online de .po’s *.

* Tomar la entrada de un usuario desde un campo de texto, abrir un archivo .po, insertarlo de la manera que Gettext espera escapando los campos y compilar todo de nuevo es algo que no sirve cuando se está trabajando con muchos usuarios (a menos de que las traducciones no funcionen en tiempo real).

Actualización: Se me olvidaba, la base de datos debe estar configurada para usar UTF8.