Symfony 2.0, el libro oficial

15.1. Configurando

La traducción se realiza mediante un servicio llamado translator que utiliza la configuración regional del usuario para buscar y devolver los mensajes traducidos. Antes de usarlo, habilita el servicio translator en tu configuración:

# app/config/config.yml
framework:
    translator: { fallback: en }
<!-- app/config/config.xml -->
<framework:config>
    <framework:translator fallback="en" />
</framework:config>
// app/config/config.php
$container->loadFromExtension('framework', array(
    'translator' => array('fallback' => 'en'),
));

La opción fallback define la configuración regional que se utiliza por defecto cuando no está disponible la configuración regional del usuario.

Truco Cuando la traducción no existe para una configuración regional, el traductor primero intenta encontrar la traducción para el idioma sin tener en cuenta el país (es si el valor del locale es es_MX por ejemplo). Si tampoco se encuentra la traducción, entonces se utiliza el valor por defecto de la opción fallback.

El locale utilizado en las traducciones es el que se encuentra almacenado en la sesión del usuario.