我在本地运行Symfony 3.4,并在默认值和路由中添加了语言环境。给出如下:
在app/config.yml
framework:
default_locale: "en"
在我有Routes
homepage:
path: /{_locale}
defaults: { _controller: AcmeBundle:Home:index, _locale: en }
在树枝上,我有:
{% set en_params = app.request.attributes.get('_route_params') | default([]) | merge(app.request.query) %}
{% set en_params = en_params | merge({'_locale': 'en'}) %}
<a href="{{ path('homepage', en_params ) }}" class="en"><span>English</span></a>
http://localhost/en
当我将鼠标悬停在锚标记上或单击
但它覆盖了默认区域设置并显示http://localhost
提前感谢您为我提供正确的方法,如果我错了,请纠正我。
如果可选参数({_locale}
参数(位于可选位置(即结尾(并且也是默认值,则可以(并且显然将(省略它。对于{_format}
甚至.{_format}
也是如此(附加点(
我想,只要它有效,你为什么在乎?
您可以通过显式定义要[a-z]{2}
_locale
要求(甚至更明确地de|en
(来强制参数,但我不完全确定。