【发布时间】:2014-08-07 06:28:52
【问题描述】:
我在 symfony 2.5 中遇到了语言环境路由问题。 假设我的默认语言是英语。我的示例路由是 /user/register/。如果我在没有任何语言环境的情况下请求它,它应该出现英文翻译。如果我使用语言环境(例如 /fr/user/register/)请求它,它应该与它一起出现。这可以通过以下方式完成:
/**
* @Route("/{_locale}/user/register/")
* @Route("/user/register/")
* @Template()
*/
public function registerAction(Request $request)
{
$locale = $request->getLocale();
$translated = $this->get('translator')->trans('test.output');
echo $locale."<br>".$translated;
exit();
}
现在我要对此提出疑问:
- 如何才能避免用户使用默认语言作为区域设置来调用路由?在我的示例中,英语是默认语言,因此 /en/user/register/ 将具有与 /user/register/ 相同的输出。我不想在每个控制器动作中进行 301 重定向!
- 有没有简单的方法可以用一个路由注释来注释有和没有语言环境的路由?
【问题讨论】:
标签: http symfony annotations routes