2016-05-12 188 views
0

我试图在路由中实现语言环境。 我可以得到它像host/en/page & host/fr/page这个片段的工作:设置默认语言环境

#routing.yml 

app: 
    resource: "@AppBundle/Controller/" 
    type:  annotation 
    prefix: /{_locale} 
    requirements: 
     _locale: nl|en 

但我的目标是能够使用host/page那里的语言环境不会在url中,但被设置为默认的语言环境。

我该怎么做?我无法在文档中的任何地方找到它。

编辑,尝试将JMSI18nRoutingBundle

补充:

# config.yml 

jms_i18n_routing: 
    default_locale: nl 
    locales: [nl, en] 
    strategy: prefix_except_default 

# security.yml > firewalls section 

form_login: 
     login_path: _login 
     check_path: _login 
     csrf_token_generator: security.csrf.token_manager 
    logout: 
     path: _logout 
     target:/

# routing.yml 

_logout: 
    path: /logout 
    options: { i18n: false } 
_login: 
    path: /login 
    options: { i18n: false } 

路由前缀,因为他们应该,但我无法用我的登录注销路线。

+0

有针对https://github.com/schmittjoh/JMSI18nRoutingBundle – malcolm

+0

简单捆绑我也只是看看它,但它只是为symfony1.2 2.我使用的symfony 3.我不能甚至可以使用作曲家进行安装。 – SnelleJelle

+1

我在Symfony 3.0.6上,每次都使用这个包。添加到作曲家:'“jms/i18n-routing-bundle”:“^ 2.0”,' – malcolm

回答

0

使用https://github.com/schmittjoh/JMSI18nRoutingBundle捆绑。

app/config.yml设置默认语言环境的包。

jms_i18n_routing: 
    default_locale: nl 
    locales: [nl, en] 
    strategy: prefix_except_default 
+0

这确实搞乱了我的/登录和/退出路线,现在试图修复它.. – SnelleJelle

+0

您还应该删除路由前添加的要求和前缀。如果设置了默认语言,它不能打破路线,路线保持不变。 – malcolm

+0

我正在编辑我的帖子,以更好地反映我迄今为止所尝试的内容 – SnelleJelle

相关问题