在 Symfony 4 中创建包含语言环境的 URL
Creating URLs containing the locale in Symfony 4
我正在创建一个支持多种语言的 Symfony 4 网络应用程序。路由已经完成,所以我可以有 /en/suchpage
或 /de/suchpage
。我现在正在寻找一种使用正确语言环境 link 到 "suchpage" 的方法。
路由如下所示:
suchpage:
path: /{_locale}/suchpage/
controller: App\Controller\SimplePageController::such
requirements:
maw: '%app.locales%'
defaults:
_locale: '%locale%'
我正在使用 Twig,我需要从 Twig 模板中 link 到页面的正确版本。这个"works":
{{ path('suchpage', {'_locale': app.request.locale}) }}
它有两个问题:
我不想到处重复这个。像 {{ page('suchpage') }}
这样的东西会好得多。是否存在这样的功能?可以让 path()
表现得像这样吗?
如果在请求中未指定区域设置,则此操作失败,这是可能发生的,因为并非所有页面都需要它(因为有些页面有默认设置)。
有一个维护包,JMSI18nRoutingBundle,可以满足您的需求。
composer require jms/i18n-routing-bundle
关于此捆绑包的一些有用链接:
我正在创建一个支持多种语言的 Symfony 4 网络应用程序。路由已经完成,所以我可以有 /en/suchpage
或 /de/suchpage
。我现在正在寻找一种使用正确语言环境 link 到 "suchpage" 的方法。
路由如下所示:
suchpage:
path: /{_locale}/suchpage/
controller: App\Controller\SimplePageController::such
requirements:
maw: '%app.locales%'
defaults:
_locale: '%locale%'
我正在使用 Twig,我需要从 Twig 模板中 link 到页面的正确版本。这个"works":
{{ path('suchpage', {'_locale': app.request.locale}) }}
它有两个问题:
我不想到处重复这个。像
{{ page('suchpage') }}
这样的东西会好得多。是否存在这样的功能?可以让path()
表现得像这样吗?如果在请求中未指定区域设置,则此操作失败,这是可能发生的,因为并非所有页面都需要它(因为有些页面有默认设置)。
有一个维护包,JMSI18nRoutingBundle,可以满足您的需求。
composer require jms/i18n-routing-bundle
关于此捆绑包的一些有用链接: