Échale un vistazo a
ésto.
El archivo "messages.es.xlf" tiene que tener los literales del idioma por defecto y su traducción al idioma del fichero. Si tu idioma por defecto es ES, el archivo se deberá llamar "messages.en.xlf" para traducirlo al Inglés.
Código XML:
Ver original<trans-unit id="1">
<source>Hola</source>
<target>Hello</target>
</trans-unit>
Código PHP:
Ver original/*
* Llamando al método trans del servicio translator a la hora de generar el formulario
* él sólo buscará un fichero con locale que esté activo en ese momento (EN, por ejemplo) y buscará el literal quie le hayas pasado como argumento.
* si lo encuentra lo traduced y si no deja el original.
*/
$builder->add('code', 'text', array( 'label' => $this->get('translator')->trans('Hola');
));