我安装了捆绑包:https://github.com/lunetics/LocaleBundle,它有助于在语言之间切换。一切正常,在树枝上,翻译工作正常。但是当我想翻译控制器中的任何消息时,我得到法语(fr)而不是定义语言(例如)。
请问如何在控制器中获取当前选定的区域设置?
我使用:$this->getRequest()->getLocale()
但它不起作用,它为每种文化提供FR。
我在parameter.ini中的默认设置语言是FR
答案 0 :(得分:0)
在查看LuneticsLocaleBundle和Symfony 2.1文档的代码后,我发现,symfony2.1正在路由中传递Locale。从twig模板呈现操作时存在问题,其中symfony创建nes请求。所以,为了解决这个问题,我重写了LuneticsLocaleBundle的代码,并在bundle的LocaleController的switchAction中添加了$this->get('session')->set('_locale', $_locale);
。
因此,语言环境将存储在会话中。
我希望这也可以帮到你。