【发布时间】:2016-09-07 21:52:57
【问题描述】:
我正在尝试在路线中实施语言环境。
我可以通过这个 sn-p 让它像 host/en/page 和 host/fr/page 一样工作:
#routing.yml
app:
resource: "@AppBundle/Controller/"
type: annotation
prefix: /{_locale}
requirements:
_locale: nl|en
但我的目标是能够使用host/page,其中区域设置不在 url 中,而是设置为默认区域设置。
我该怎么做?我在文档中的任何地方都找不到它。
编辑,试用 JMSI18nRoutingBundle
补充:
# config.yml
jms_i18n_routing:
default_locale: nl
locales: [nl, en]
strategy: prefix_except_default
.
# security.yml > firewalls section
form_login:
login_path: _login
check_path: _login
csrf_token_generator: security.csrf.token_manager
logout:
path: _logout
target: /
.
# routing.yml
_logout:
path: /logout
options: { i18n: false }
_login:
path: /login
options: { i18n: false }
路由应有前缀,但我无法使用我的 login 和 logout 路由。
【问题讨论】:
-
我只是看了一下,但它仅适用于 symfony 2。我正在使用 symfony 3。我什至无法使用 composer 安装它。
-
我在 Symfony 3.0.6 上并且每次都使用这个包。添加到作曲家:
"jms/i18n-routing-bundle": "^2.0", -
嗯很好,我会再试一次。会及时通知您。
-
啊,是的,看来我用错了版本。这似乎有效,作为答案,我很乐意接受,谢谢!
标签: locale symfony symfony-routing