如何根据注释设置路由转换?

时间:2015-03-27 12:59:30

标签: symfony routing annotations translation

我的网站的所有路由都是基于注释实现的。现在,我想翻译我的路由。为了实现这一点,我尝试使用捆绑JMSI18nRoutingBundle

尽管如此,文档没有给出如何为每个语言环境指定路由的任何示例。

这是一个带路由的动作,如何翻译?

/**
 * @Route("/welcome", name="welcome")
 * @Template()
 */
public function welcomeAction() {
    return array();
}

谢谢,


编辑后的问题

/**
 * @Route("/welcome", name="welcome", defaults={"_locale" = "en"})
 * @Route("/bienvenue", name="welcome", defaults={"_locale" = "fr"})
 * @Route("/willkommen", name="welcome", defaults={"_locale" = "de"})
 * @Template()
 */
public function welcomeAction() {
    return array();
}

现在,这个新注释正在发生什么:

  1. 所选路线始终是最后一个/willkommen(如果更改路线的顺序,所选路线仍然是最后一个路线)

  2. _locale设置的最后一条路线的区域设置是' de'根据上面的注释。

  3. 那么,任何建议? 感谢...

2 个答案:

答案 0 :(得分:1)

我找到了解决方案。您只需设置运行以下命令

  

php app / console translation:extract fr --bundle = MinnTestBundle   --enable-extractor = jms_i18n_routing --output-format = yml

然后,将生成minn/TestBundle/Ressources/translations/routes.fr.yml文件。自定义您的路线翻译&就是这样!

希望它会帮助别人......

答案 1 :(得分:0)

您可以添加多个路线注释。

/**
 * @Route("/welcome", name="welcome", defaults={"_locale" = "en"})
 * @Route("/bienvenue", name="welcome", defaults={"_locale" = "fr"})
 * @Template()
 */