Я создаю веб-приложение Symfony 4, которое поддерживает несколько языков. Маршрутизация завершена, поэтому я могу иметь /en/suchpage
или /de/suchpage
. Сейчас я ищу способ ссылки на "такую страницу", используя правильный язык.
Маршрутизация выглядит следующим образом:
suchpage:
path: /{_locale}/suchpage/
controller: App\Controller\SimplePageController::such
requirements:
maw: '%app.locales%'
defaults:
_locale: '%locale%'
Я использую Twig, и из шаблонов Twig мне нужно иметь возможность ссылаться на нужную версию страницы. Это "работает":
{{ path('suchpage', {'_locale': app.request.locale}) }}
У него есть две проблемы:
Я не хочу повторять это повсюду. Что-то вроде {{ page('suchpage') }}
было бы намного лучше. Существует ли такая функция? Можно ли заставить path()
вести себя так?
Сбой, если в запросе не указан языковой стандарт, как это может произойти, поскольку он не требуется на всех страницах (поскольку некоторые имеют значение по умолчанию).