Symfony2 Использовать локаль по умолчанию в маршрутизации (один URL для одного языка)
В настоящее время я разрабатываю веб-сайт с Symfony2, и мне нужно перевести его. С инструментами Symfony2 это очень просто. Но я сталкиваюсь с проблемой:
Я хотел бы иметь определенный URL (с префиксом) для языка (то есть один URL, один язык), но с языком по умолчанию. В частности:
Предположим, что языком по умолчанию является английский, поэтому
http://example.com/fr/hello
показать страницу по-французскиhttp://example.com/it/hello
показать страницу по-итальянскиhttp://example.com/en/hello
перенаправить наhttp://example.com/hello
(потому что en является языком по умолчанию)http://example.com/hello
отображение конечно страницы на английском языке (язык по умолчанию)Я наивно пытаюсь настроить мою маршрутизацию следующим образом:
#routing.yml
_welcome:
pattern: /{_locale}/hello
defaults: { _controller: AcmeDemoBundle:Welcome:hello, _locale: en}
Но это не работает (http://example.com/en/hello
просто отобразить страницу на английском иhttp://example.com/hello
вернуть ошибку 404).
Можно, конечно, каждый раз создавать два маршрута, но это очень утомительно. Поэтому я ищу чистое решение.
Между прочим, я заметил, что поведение, которое я искал с URL, было именно тем, которое было принято в официальной документации Symfony2:
http://symfony.com/fr/doc/current/book/translation.html
показать французскую традукцию
http://symfony.com/it/doc/current/book/translation.html
показать итальянский traduction
http://symfony.com/en/doc/current/book/translation.html
перенаправить наhttp://symfony.com/doc/current/book/translation.html
(которые отображают страницу на английском языке)