有一些问题,改变在symfony的2.1网站的语言环境。
我不能找到一种方法,能够改变郎不使用_locale
每路线上。 我知道这是违反基本规则 ,但这些内容将例如不引擎检索到,因为它是唯一成员。
通常情况下,我想一个简单的方法能够改变对请求的语言环境(从2.1版本BC),或在会话,但无法弄清楚如何做到这一点的顺利进行。 我也想避免使用该监听器的。
config.yml文件:
framework:
translator: { fallback: %locale% }
session:
使用routing.yml文件:
route_change_lang:
pattern: /changelang/{newlang}
defaults: { _controller: AcmeCoreBundle:Default:switchLanguage, newlang: en }
requirements:
newlang: en|fr|de
简单的动作来更新路由器的语言环境:
public function switchLanguageAction($newlang)
{
$request = $this->getRequest();
$request->setLocale($newlang);
$referer_url = $this->get('request')->headers->get('referer');
if ($referer_url != null) {
return $this->redirect($referer_url);
} else {
return $this->redirect($this->generateUrl('route_home'));
}
}
问题是什么? 我估计它关系到在主config.yml文件中设置的DEFAULT_LOCALE,但文件是真不明白,任何帮助/提示赞赏