2

有没有办法检测策略“prefix_except_default”的用户语言环境?

例如

默认语言环境:en

如果我继续访问 www.example.com 并且用户的语言环境设置为“fr”,它会将我重定向到 www.example.com/fr

与“前缀”一样,只有区域设置默认路由将具有 www.example.com 而不是 www.example.com/en

4

2 回答 2

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 的解释;)

于 2014-04-29T13:29:36.940 回答
0

你的意思是_locale参数还是preferredLocale浏览器的?如果_locale设置了,重定向应该自动完成。要检查preferredLocale浏览器,您可以使用以下行:

$request->getPreferredLanguage();

或在树枝中:

app.request.preferredLocale
于 2014-05-13T11:31:09.533 回答