I want to define the page language via url on a Symfony2 installation. My routing works via annotation inside the controller.
routing.yml
_index:
resource: "@MyMainBundle/Controller/SiteController.php"
type: annotation
siteController.php
/**
* @Route( "/{_locale}/{site}", name="_site_site", defaults={"_locale" = "en"}, requirements={"site" = "about|cities|download|blog", "_locale" = "en|de|fr|es"} )
*/
This works quiet well, but waht I want, is that the following url call the same action.
http://example.com/download
http://example.com/en/download
http://example.com/de/download
Without the languge-parameter, the page should switch back to the default language, but this is something I can handle inside my action.
I found this Answer, but could not get it to work at all. Symfony2 default locale in routing
Just add another @Route
annotation that does not include the locale.
/**
* @Route("/{_locale}/{site}/")
* @Route("/{site}/")
*/
This also works within annotations.yaml
frontend_controllers:
resource: ../../src/Controller/Frontend
type: annotation
prefix:
- /
- /{_locale}
defaults:
_locale: 'en'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With