Los usuarios de Ubuntu, pueden encontrarse con un problema al hacer una llamada a la función setlocale() encargada de asignar el idioma correcto para, por ejemplo, llamar a la función getText() y que recoja las traducciones en el idioma correcto.
El problema está en que únicamente podemos cargar los idiomas que están presentes en el sistema operativo y si intentamos cargar uno diferente, setlocale() nos devolverá siempre false.
Podemos saber los idiomas cargados en el sistema operativo mediante el comando:
locale -a
Esto nos devolverá un listado similar a este:
C
en_GB.utf8
en_IN
en_NG
en_US.utf8
POSIX
Si estámos intentando cargar el idioma es_ES (como era mi caso), le resultará imposible… la solución, instalar los idiomas que necesitamos lanzando el comando:
apt-get install language-pack-es-base
Posteriormente, reiniciaremos Apache:
/etc/init.d/apache2 reload
Y le indicaremos a nuestro programa que cargue el idioma con el mismo nombre que lo encontramos en nuestro sistema, es decir, en mi caso:
setlocale( LC_MESSAGES, “es_ES.UTF8″ );
Y con esto conseguiremos que nuestro programa quede internacionalizado de manera correcta.


