2012-03-13 17 views
12

Çok dilli bir Symfony2 projesinde şablon oluşturmak için twig kullanıyorum. Layout.html.twigGeçerli sayfayı değiştirmeden dil değiştirme

'da bir dil değiştirici vardır. Kullanıcının dil bağlantısını tıklatarak mevcut sayfayı değiştirmeden dilleri değiştirmesini istiyorum. Sadece statik sayfalar için görev yapan aşağıdaki kodu yazdım. İstediğiniz yerel ayarı ile .get('_route_params') ve merge onları birlikte rota parametrelerini elde edebilirsiniz route has some missing mandatory parameters

<ul id="lang"> 
    <li><a href="{{ path(app.request.attributes.get('_route'), {_locale: 'az'}) }}">AZ</a></li> 
    <li><a href="{{ path(app.request.attributes.get('_route'), {_locale: 'en'}) }}">EN</a></li> 
</ul> 

cevap

34

: dil bağlantıları sadece rotaya locale geçtiğinden, ek zorunlu parametrelerin tutulumu durumunda, belli ki istisna atar:

<ul class="lang-menu"> 
    <li><a href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'ca'})) }}">Català</a></li> 
    <li><a href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'en'}))}}">English</a></li> 
</ul> 
+1

çekicilik gibi çalışır! – Zagloo

+0

Bunu ilk bakışta söylemememiz gerektiğini biliyorum ama ... Seni seviyorum! –

+0

Çok teşekkürler, bu benim günümü –

İlgili konular