我正在尝试进行此设置,但我遇到了问题: 使用lunetics locale bundle。
用户访问网站www.example.com,该软件包采用用户的区域设置并显示其本地页面,例如,如果他的位置是德语,您将看到www.example.com/de.
这种配置似乎无法获得它。
奇怪的是,即使没有该捆绑包,我也会对路线产生奇怪的行为: 例如,我设置了这条路线:
acme_site:
resource: "@AcmeSiteBundle/Controller/"
type: annotation
prefix: /{_locale}
defaults: { _locale: en }
requirements:
_locale: en|it
如果我转到www.example.com/en页面显示
如果我去www.example.com我返回了一个错误,其中表示没有路由/.
我做错了什么?
答案 0 :(得分:0)
我不确定你的控制器文件夹是什么样的,但是我能够像这样用AcmeDemoBundle WelcomeController来解决你的问题:
acme_site_default:
pattern: /
defaults: { _controller: AcmeDemoBundle:Welcome:index, _locale: en }
acme_site:
pattern: /{_locale}
defaults: { _controller: AcmeDemoBundle:Welcome:index}
requirements:
_locale: en|it
_demo_secured:
resource: "@AcmeDemoBundle/Controller/SecuredController.php"
type: annotation
_demo:
resource: "@AcmeDemoBundle/Controller/DemoController.php"
type: annotation
prefix: /demo
...
基本上,定义多个模式。你应该能够用注释实现同样的东西:
/**
* @Route("/", defaults={"_locale"="en"})
* @Route("/{_locale}", requirements={"_locale" = "en|it"})
*/
希望有所帮助!