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.


Después del éxito obtenido la pasada edición, el grupo 


(4.00 out of 5)