戦略「prefix_except_default」のユーザーのロケールを検出する方法はありますか?
例えば
デフォルトのロケール: en
www.example.com にアクセスし、ユーザーのロケールが「fr」に設定されている場合、www.example.com/fr にリダイレクトされます
「プレフィックス」と同様に、ロケールのデフォルト ルートには www.example.com/en ではなく www.example.com が含まれます。
戦略「prefix_except_default」のユーザーのロケールを検出する方法はありますか?
例えば
デフォルトのロケール: en
www.example.com にアクセスし、ユーザーのロケールが「fr」に設定されている場合、www.example.com/fr にリダイレクトされます
「プレフィックス」と同様に、ロケールのデフォルト ルートには www.example.com/en ではなく www.example.com が含まれます。
次のようなものを試してください:
<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