正如标题所示,我将 Symfony 与JMSTranslationBundle和JMSI18nBundle结合使用,以提供翻译后的路由。
这是我当前配置的路线:
/{location}/{profession}/{specialty}
所以路线
/berlin/arzt/allgemein
已成功推送到正确的控制器和操作。
JMSI18nBundle 会自动为我的英语路由添加 /en/ 前缀。这适用于具有非动态组件(例如/profile/{slug}/
)的所有其他路由。但是,当使用上述示例的英文版本时,这不起作用。IE
/en/berlin/doctor/general
我猜路由器没有正确读取这个作为正常路由的英文版本,而是尝试分配 location = en、professional = berlin 等,这显然是不正确的。
我已经尝试为翻译定义可选参数、更复杂的正则表达式和斜杠(所有这些都带有缓存刷新)。这些都不起作用。什么工作,是插入一个毫无意义的非动态组件,即/en/s/berlin/doctor/general
等
作为业务需求的一部分,我们不想要这个额外的无意义的非动态 URL 组件。
所以,我的问题是:如何在 Symfony 中使用(前缀)可翻译的 URL,只包含动态字段?
非常感谢您的帮助!