我想在我的symfony 2.1网站上有一个语言切换器。在Symfony 2.1中设置语言环境
我跟着official documentation,设置翻译文件,但设置语言环境$ request-> setLocale('en_US');似乎没有工作。经过一番调查,我找到this question,它提供了这个listener technique的答案的开始。
但是,我仍然没有设法让它工作,我不太确定我的听众声明,是不是有问题?
我的控制器:
public function englishAction(Request $request)
{
$this->get('session')->set('_locale', 'en_US');
return $this->redirect($request->headers->get('referer'));
}
服务声明在config.yml:
services:
my_listener:
class: "FK\MyWebsiteBundle\Listener\LocaleListener"
我的路由:
homepage:
pattern: /{_locale}
defaults: { _controller: FKMyWebsiteBundle:Default:index, _locale: en }
requirements:
_locale: en|fr|cn
about:
pattern: /{_locale}/about
defaults: { _controller: FKMyWebsiteBundle:Default:about, _locale: en }
requirements:
_locale: en|fr|cn
什么是您的需要?用例的一个例子?也许你不需要这个听众 – webda2l
@ webda2l我只想让访问者选择网站的语言。你的答案中的代码是行不通的,但我想我必须改变我的路线,我会再努力一些.. –
我是否正确设置了监听器?我的LocaleListener会被这样调用吗? –