Symfony 2 - 在某些 paths/routes 上禁用翻译
Symfony 2 - disable translations on certain paths/routes
我想禁用翻译或强制对以 /admin
开头的路径使用英文翻译。
有没有办法在配置中处理它?
如果不是,最佳做法是什么? EventListener
无论请求中设置的语言环境如何,都检查路由并强制进行英文翻译?
我认为 EventListener
方法最舒服:http://symfony.com/doc/current/translation/locale.html
在 Request
对象中设置语言环境。提示:您可以使用 _route
属性检查路由名称,而不是检查绝对 URL.
根据您的方式 import your routes,您还可以在其上设置默认语言环境,没有其他选项来设置它(例如 routing.yml):
app:
resource: '@AppBundle/Controller/'
type: annotation
app.admin:
resource: '@AppBundle/Controller/Admin/'
type: annotation
prefix: /admin
defaults:
_locale: nl
取自the docs:
app.admin:
resource: '@AppBundle/Controller/Admin/'
type: annotation
prefix: /{_locale}/admin
requirements:
_locale: nl
将语言环境放在 url 中,这对搜索引擎更友好。正如文档所说:
A better policy is to include the locale in the URL. This is fully-supported by the routing system using the special _locale parameter:
我想禁用翻译或强制对以 /admin
开头的路径使用英文翻译。
有没有办法在配置中处理它?
如果不是,最佳做法是什么? EventListener
无论请求中设置的语言环境如何,都检查路由并强制进行英文翻译?
我认为 EventListener
方法最舒服:http://symfony.com/doc/current/translation/locale.html
在 Request
对象中设置语言环境。提示:您可以使用 _route
属性检查路由名称,而不是检查绝对 URL.
根据您的方式 import your routes,您还可以在其上设置默认语言环境,没有其他选项来设置它(例如 routing.yml):
app:
resource: '@AppBundle/Controller/'
type: annotation
app.admin:
resource: '@AppBundle/Controller/Admin/'
type: annotation
prefix: /admin
defaults:
_locale: nl
取自the docs:
app.admin:
resource: '@AppBundle/Controller/Admin/'
type: annotation
prefix: /{_locale}/admin
requirements:
_locale: nl
将语言环境放在 url 中,这对搜索引擎更友好。正如文档所说:
A better policy is to include the locale in the URL. This is fully-supported by the routing system using the special _locale parameter: