2012-03-13 14 views
12

多言語のSymfony2プロジェクトでテンプレートとしてtwigを使用します。 layout.html.twigに言語切り替え機能があります現在のページを変更せずに言語を切り替える

言語リンクをクリックすると、現在のページを変更せずに言語を切り替えることができます。私は静的なページのために義務づけている次のコードを書いています。あなたの希望のロケールと.get('_route_params')merge彼らとルートのパラメータを取得することができます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> 

答えて

34

:言語リンクがちょうどルートへlocaleを渡すので、追加の必須パラメータの関与の場合には、それは明らかに例外がスローされます:

<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

は魅力的です。 – Zagloo

+0

私は一目惚れでこれを言ってはいけないと知っていますが...私はあなたを愛しています! –

+0

ありがとう、私の一日を作った –

関連する問題