fix: robust language switcher links
This commit is contained in:
@@ -1,9 +1,7 @@
|
||||
{% load i18n localized_navigation %}
|
||||
|
||||
<div class="header-right">
|
||||
{% get_current_language as current_language %}
|
||||
{% get_available_languages as available_languages %}
|
||||
{% get_language_info_list for available_languages as languages %}
|
||||
{% request_language_options as language_options %}
|
||||
|
||||
<div class="dropdown language-dropdown me-2">
|
||||
@@ -29,16 +27,12 @@
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="header-language-switcher">
|
||||
{% for option in language_options %}
|
||||
{% for language in languages %}
|
||||
{% if language.code == option.code %}
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center gap-2" href="{{ option.url }}">
|
||||
{% include "oxyan/partials/flags/"|add:language.code|add:".svg" %}
|
||||
<span>{{ language.name_local|title }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<li>
|
||||
<a class="dropdown-item d-flex align-items-center gap-2" href="{{ option.url }}">
|
||||
{% include "oxyan/partials/flags/"|add:option.code|add:".svg" %}
|
||||
<span>{{ option.label|title }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -141,10 +141,13 @@ def page_language_options(page):
|
||||
|
||||
@register.simple_tag(takes_context=True)
|
||||
def request_language_options(context):
|
||||
page = context.get("page") or context.get("self")
|
||||
if page is None:
|
||||
page = _resolve_page_from_request(context.get("request"))
|
||||
return page_language_options(page)
|
||||
try:
|
||||
page = context.get("page") or context.get("self")
|
||||
if page is None:
|
||||
page = _resolve_page_from_request(context.get("request"))
|
||||
return page_language_options(page)
|
||||
except Exception:
|
||||
return page_language_options(None)
|
||||
|
||||
|
||||
@register.simple_tag(takes_context=True)
|
||||
|
||||
Reference in New Issue
Block a user