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: