Symfony 2.3 不同路径上的不同语言环境
Symfony 2.3 different locales on different paths
我需要在不同的路径上实现不同的语言环境。
现在存在路径 /
下的 网页 和路径 /admin
.
下的 admin 页面
管理员用户在网页上使用英语或法语语言环境(取决于他的选择)并且在[=23]中只有英语=]管理页面。语言环境不能包含在 URL 路径中。
问题是,当登录的管理员使用 FR 检查 网页 并继续在 EN 上的 管理页面 时, web 页面 管理员回来时必须在 FR 上。
我正在考虑在会话中为 web 和 admin 页面存储单独的语言环境,并根据 path 读取它们.
有没有硬编码的建议或更好的方法?
您可以添加路由要求以定义可能的语言环境列表。
见Adding Requirements section for Routing
# app/config/routing.yml
homepage:
path: /{_locale}
defaults: { _controller: AppBundle:Main:homepage, _locale: en }
requirements:
_locale: en|fr
我的方法是创建一个事件侦听器,它根据访问的路径强制使用所需的语言环境。路径简单地用正则表达式解析。
我需要在不同的路径上实现不同的语言环境。
现在存在路径 /
下的 网页 和路径 /admin
.
管理员用户在网页上使用英语或法语语言环境(取决于他的选择)并且在[=23]中只有英语=]管理页面。语言环境不能包含在 URL 路径中。
问题是,当登录的管理员使用 FR 检查 网页 并继续在 EN 上的 管理页面 时, web 页面 管理员回来时必须在 FR 上。
我正在考虑在会话中为 web 和 admin 页面存储单独的语言环境,并根据 path 读取它们.
有没有硬编码的建议或更好的方法?
您可以添加路由要求以定义可能的语言环境列表。
见Adding Requirements section for Routing
# app/config/routing.yml homepage: path: /{_locale} defaults: { _controller: AppBundle:Main:homepage, _locale: en } requirements: _locale: en|fr
我的方法是创建一个事件侦听器,它根据访问的路径强制使用所需的语言环境。路径简单地用正则表达式解析。