Configuració locale a CentOS 5

Per configurar el locale d’un CentOS 5 per a UTF8-català, hem d’editar el següent fitxer (usuari root):

$export LANG=ca_ES.UTF-8

Això només activarà el locale per a la sessió en curs però si volem que es mantingui sempre que ens connectem amb qualsevol usuari, hem de crear el següent fitxer:

/etc/sysconfig/i18n

i afegir les següents línies:

LANG="ca_ES.UTF-8"

En aquest fitxer es poden definir altres configuracions com són el llenguatge per defecte, els llenguatges suportats, el sistema de fonts per defecte, … Per exemple:

LANG="ca_ES.UTF-8"
SUPPORTED="es_ES.UTF-8"
SYSFONT="latarcyrheb-sun16"

Per veure tots els locales que podem fer servir podem executar la següent ordre:

$locale -a

Traducció de pàgines web amb Smarty i gettext

El procés per traduir pàgines amb Smarty i Gettext és el següent:

  • Construir un template amb les cadenes a traduir entre els limitadors {t}{/t}. Ex: {t}Text to translate{/t}
  • En el codi PHP cridar a un l’idioma que és farà servir cada cop que es presenti la pàgina
  • Executar la següent comanda per obtenir els textos a traduïr:
1
php -q tsmarty2c.php templates/fitxer.tpl > text_strings.c
  • Amb lo que obtenim el fitxer quasi en format PO. Per a obtenir-lo executem:
1
xgettext -o messages.po --join-existing --no-location text_strings.c
  • Aquí tenim que editar el fiter .po generat en cadascún dels idiomes que volguem i convertir-lo en fitxer.mo:
1
msgfmt -o messages.mo messages.po

Important!!! Cada vegada que es posi un fitxer de traduccions nou s’ha de reiniciar Apache (probablement sigui degut a un tema de la memoria cau). La versió actual de Smarty amb el plugin gettext obliga a registrar el plugin de traducció que podem posar a l’alçada de la classes smarty i l’hem de cridar així: $smarty->register->block(‘t’, ‘smarty_translate’); Tal i com es comenta en el següent link: http://www.smarty.net/forums/viewtopic.php?p=65393 i http://www.tecnoretales.com/

Link interessant de traducció de pàgines web amb PHP: http://onlamp.com/pub/a/php/2002/06/13/php.html i la seva pàgina corresponent a PHP: http://www.php.net/gettext