2013-07-17 6 views
2

Есть ли способ определить локаль пользователя для стратегии «prefix_except_default»?JMSI18nRoutingBundle Определить язык

например

локаль по умолчанию: EN

, если я иду на www.example.com и локаль пользователя устанавливается в «пт» он перенаправляет меня www.example.com/fr

так же, как с «приставкой», только то, что маршрут по умолчанию локаль будет иметь www.example.com, а не www.example.com/en

ответ

0

Попробуйте что-то вроде этого:

<ul id="language-selector"> 
    {% if app.request.attributes.get('_route') == 'homepage' %}    
     <li><a href="{{ path("homepage", {"_locale": "fr"}) }}">FR</a></li> 
     <li><a href="{{ path("homepage", {"_locale": "en"}) }}">EN</a></li> 
    {% else %} 
     <li><a href="{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge({'_locale': 'fr'})) }}">FR</a></li> 
     <li><a href="{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge({'_locale': 'en'})) }}">EN</a></li> 
    {% endif %} 
</ul> 

Спасибо @xiidea для его объяснения;)

+0

Это будет по ошибке, как вы знаете из [здесь] (HTTP: // StackOverflow. com/a/23457456/1289495) :) – xiidea

0

вы имеете в виду _locale параметр или preferredLocale браузера? Если установлено значение _locale, перенаправление должно выполняться автоматически. Для проверки preferredLocale браузера вы можете использовать следующие строки:

$request->getPreferredLanguage(); 

или в Twig:

app.request.preferredLocale 
Смежные вопросы