Symfony i18n con gettext
Publicado en Frameworks, Programación el 5 de December de 2009 por Manel Pérez MataTags: Symfony | Añadir comentario
Symfony permite varios métodos para internazionalizar nuestra aplicación. Por defecto, utilizan el formato XLIFF sin embargo, personalmente me gusta más gettext.
¿Cómo configurar symfony para usar gettext?
Para configurar symfony para que utilice gettext seguiremos los siguientes pasos:
1) Activamos el módulo I18N modificando el archivo settings.yml:
#apps/<appName>/config/settings.yml
all:
.settings:
charset: utf-8
i18n: on
standard_helpers: [ [TUS_HELPERS_ACTIVADOS]..., I18N]
2) Abrimos el archivo factories.yml y añadimos la entrada i18n:
#apps/<appName>/config/factories.yml
all:
i18n:
class: sfI18N
param:
default_culture: en_US
source: gettext</pre>
3) Crearemos una carpeta i18n dentro de apps/
apps/<appName>/i18n/<lang>
Donde <lang> será el idioma en dos letras (en, es, fr…) y dentro tendremos los ficheros messages.po y messages.mo.
Ahora podemos utilizar la función __( ‘texto_a_traducir’ ) con doble underscore [ _ ] en lugar del simple utilizado normalmente.
¿Cómo generar automáticamente nuestros ficheros po y mo?
Symfony trae una serie de herramientas que nos permiten generar los archivos po y mo de manera automática. Invocando el comando:
symfony i18n:extract frontend en --auto-save
Se recorrerá todos los archivos php de nuestra aplicación (código y templates) y sacará los textos que encuentre en las funciones __().
También se puede utilizar el mismo comando de la siguiente manera:
symfony i18n:extract frontend en --auto-delete
para eliminar las cadenas de texto que ya no existen.

Symfony integra Propel ORM por defecto, sin embargo, Doctrine está ganando puntos sobre su rival.


El otro día os comentaba
Symfony es un Framework PHP pensado y diseñado para optimizar el desarrollo de aplicaciones web. Basado en la idea de Ruby on Rails, Symfony ha aunado en uno las ventajas de este y otros framewors existentes, ha incorporado ideas propias y el resultado es un framework elegante, estable, productivo y muy bien documentado. 
(4.00 out of 5)