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

Deixa un comentari o pregunta