Symfony 2.3 不同路径上的不同语言环境

Symfony 2.3 different locales on different paths

我需要在不同的路径上实现不同的语言环境。 现在存在路径 / 下的 网页 和路径 /admin.

下的 admin 页面

管理员用户网页上使用英语或法语语言环境(取决于他的选择)并且在[=23]中只有英语=]管理页面。语言环境不能包含在 URL 路径中。

问题是,当登录的管理员使用 FR 检查 网页 并继续在 EN 上的 管理页面 时, web 页面 管理员回来时必须在 FR 上。

我正在考虑在会话中为 webadmin 页面存储单独的语言环境,并根据 path 读取它们.

有没有硬编码的建议或更好的方法?

您可以添加路由要求以定义可能的语言环境列表。

Adding Requirements section for Routing

# app/config/routing.yml
homepage:
    path:      /{_locale}
    defaults:  { _controller: AppBundle:Main:homepage, _locale: en }
    requirements:
        _locale:  en|fr

我的方法是创建一个事件侦听器,它根据访问的路径强制使用所需的语言环境。路径简单地用正则表达式解析。