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 -->
<!-- app/config/config.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:framework="http://symfony.com/schema/dic/symfony"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
http://symfony.com/schema/dic/symfony http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
<framework:config>
<framework:translator fallback="en" />
</framework:config>
</container>
// 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.
El locale utilizado en las traducciones es el que se encuentra almacenado en la petición del usuario. Normalmente su valor se configura con el parámetro especial _locale
de las rutas.