有没有办法检测策略“prefix_except_default”的用户语言环境?
例如
默认语言环境:en
如果我继续访问 www.example.com 并且用户的语言环境设置为“fr”,它会将我重定向到 www.example.com/fr
与“前缀”一样,只有区域设置默认路由将具有 www.example.com 而不是 www.example.com/en
有没有办法检测策略“prefix_except_default”的用户语言环境?
例如
默认语言环境:en
如果我继续访问 www.example.com 并且用户的语言环境设置为“fr”,它会将我重定向到 www.example.com/fr
与“前缀”一样,只有区域设置默认路由将具有 www.example.com 而不是 www.example.com/en
尝试这样的事情:
<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 的解释;)
你的意思是_locale
参数还是preferredLocale
浏览器的?如果_locale
设置了,重定向应该自动完成。要检查preferredLocale
浏览器,您可以使用以下行:
$request->getPreferredLanguage();
或在树枝中:
app.request.preferredLocale