Symfony 2.8没有正确加载语言环境

时间:2016-04-06 09:18:11

标签: php symfony locale symfony-2.8

在我使用Symfony 2.3之前,翻译工作正常。该地区之前正好装载,我去了“Symfony Profiler”,一切都还好。 现在,在2.8.3中,使用与之前相同的配置,它加载默认语言环境('es'),但不加载我想要加载的语言环境('en')。

我在一个作为服务加载的监听器中设置它:

        $getLang = $getLang->getLang(); // = 'en'
        $event->getRequest()->setLocale($getLang);
        $this->session->set('_locale', $getLang);

如果我执行var_dump:

        var_dump('$getLang = ' . $getLang);
        echo '<br>';
        var_dump($event->getRequest()->getLocale());
        echo '<br>';
        var_dump($this->session->get('_locale'));
        echo '<br>';

然后它向我显示:

string(13) "$getLang = en" 
string(2) "en" 
string(2) "en" 

但是在Symfony Listener中,它从'es'语言环境加载翻译,我不知道为什么:Loading wrong locale

在这里我可以看到,在会话参数中,'_locale'参数为'en':Session locale

希望你能帮助我,谢谢!

更新

我需要在LocaleListener事件中指定:

$this->translator->setLocale($getLang);

在BaseController中(在顶部):

$container->get('translator')->setLocale($session->get('_locale'));

它有效。我不知道为什么我要添加这种新方法,但是,正在工作......

感谢。

0 个答案:

没有答案