fix: robust language switcher links

This commit is contained in:
2026-05-02 21:27:19 +02:00
parent 6b46751fe3
commit d4410b1f68
2 changed files with 13 additions and 16 deletions

View File

@@ -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>

View File

@@ -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)