Symfony 2 - 禁用某些路径/路由的转换

时间:2017-06-05 08:13:16

标签: symfony translation symfony-2.8

我想禁用翻译或强制使用英文版本以/admin开头的路径。

有没有办法在配置中接近它?

如果不是最佳做法? EventListener检查路由并强制执行英语翻译,无论请求中设置的语言环境如何?

3 个答案:

答案 0 :(得分:1)

根据您import your routes的方式,您还可以在其上设置默认语言环境,而不设置其他选项(示例routing.yml):

app:
  resource: '@AppBundle/Controller/'
  type: annotation

app.admin:
  resource: '@AppBundle/Controller/Admin/'
  type: annotation
  prefix: /admin
  defaults:
      _locale: nl

答案 1 :(得分:0)

我认为Requirements方法最舒适:http://symfony.com/doc/current/translation/locale.html

EventListener对象中设置区域设置。提示:您可以使用Request属性检查路由名称,而不是检查绝对URL。

答案 2 :(得分:0)

取自the docs

app.admin:
  resource: '@AppBundle/Controller/Admin/'
  type: annotation
  prefix: /{_locale}/admin
  requirements:
      _locale: nl

将语言环境放在网址中,这对搜索引擎更加友好。正如文档所说:

  

更好的策略是在URL中包含区域设置。路由系统使用特殊的_locale参数完全支持这一点: