Symfony 5 - 国际化路线 - 带有语言环境的前缀路线
Symfony 5 - internationalized routes - Prefix routes with locale
我们如何在 symfony5 中自动为路由路径添加语言环境前缀?
# file: config/routes.yaml
index_blog:
path:
en: blog/homepage
fr: blog/accueil
controller: App\Controller\HomepageController::index
当我们调试时,我们有这样的东西
php bin/console debug:router
index_blog.en ANY ANY ANY /blog/homepage
index_blog.fr ANY ANY ANY /blog/accueil
那么我们应该怎么做才能在 url 前加上 _locale 来得到类似
的东西
/**fr**/blog/accueil
/**en**/blog/homepage
JMSI18nRoutingBundle 不适用于 Symfony 5。
这是我找到的解决方案:
# file: config/routes.yaml
my_app:
prefix:
fr: /fr
en: /en
es: /es
resource: '../src/App/Resources/config/routes/routing.yaml'
name_prefix: app_web_
# defaults:
# subdomain: www
# domain: localhost.com
# host: "{subdomain}.{domain}"
# requirements:
# domain: (localhost.com|localhost.org)
如果您希望始终重定向到首选路由“/fr”(如果是“/”),您必须添加一个事件订阅者。
查看 Symfony 演示应用程序。
我们如何在 symfony5 中自动为路由路径添加语言环境前缀?
# file: config/routes.yaml
index_blog:
path:
en: blog/homepage
fr: blog/accueil
controller: App\Controller\HomepageController::index
当我们调试时,我们有这样的东西
php bin/console debug:router
index_blog.en ANY ANY ANY /blog/homepage
index_blog.fr ANY ANY ANY /blog/accueil
那么我们应该怎么做才能在 url 前加上 _locale 来得到类似
的东西/**fr**/blog/accueil
/**en**/blog/homepage
JMSI18nRoutingBundle 不适用于 Symfony 5。
这是我找到的解决方案:
# file: config/routes.yaml
my_app:
prefix:
fr: /fr
en: /en
es: /es
resource: '../src/App/Resources/config/routes/routing.yaml'
name_prefix: app_web_
# defaults:
# subdomain: www
# domain: localhost.com
# host: "{subdomain}.{domain}"
# requirements:
# domain: (localhost.com|localhost.org)
如果您希望始终重定向到首选路由“/fr”(如果是“/”),您必须添加一个事件订阅者。
查看 Symfony 演示应用程序。