i18n: normalize language switch next URL to avoid double locale prefixes
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
{% load i18n %}
|
{% load i18n i18n_helpers %}
|
||||||
<style>
|
<style>
|
||||||
.ms-lang-switcher { display: inline-flex; align-items: center; }
|
.ms-lang-switcher { display: inline-flex; align-items: center; }
|
||||||
.ms-lang-switcher .form-select {
|
.ms-lang-switcher .form-select {
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
<a class="ms-lang-switcher-link" href="/language-test/" title="Language test">LANG</a>
|
<a class="ms-lang-switcher-link" href="/language-test/" title="Language test">LANG</a>
|
||||||
<form action="{% url 'set_language' %}" method="post" class="ms-lang-switcher me-2" aria-label="Language switcher">
|
<form action="{% url 'set_language' %}" method="post" class="ms-lang-switcher me-2" aria-label="Language switcher">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input name="next" type="hidden" value="{{ request.get_full_path }}">
|
<input name="next" type="hidden" value="{{ request.path|untranslated_url }}">
|
||||||
<label for="header-language-switcher" class="visually-hidden">{% trans "Language" %}</label>
|
<label for="header-language-switcher" class="visually-hidden">{% trans "Language" %}</label>
|
||||||
<select id="header-language-switcher" name="language" class="form-select form-select-sm" onchange="this.form.submit()">
|
<select id="header-language-switcher" name="language" class="form-select form-select-sm" onchange="this.form.submit()">
|
||||||
{% get_current_language as LANGUAGE_CODE %}
|
{% get_current_language as LANGUAGE_CODE %}
|
||||||
|
|||||||
21
mandelstudio/templates/oxyan/partials/language_chooser.html
Normal file
21
mandelstudio/templates/oxyan/partials/language_chooser.html
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<!-- MB OVERRIDE -->
|
||||||
|
{% load i18n static ocyanjson i18n_helpers %}
|
||||||
|
|
||||||
|
<div class="dropdown language-dropdown">
|
||||||
|
<button type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
{% include "oxyan/partials/flags/"|add:LANGUAGE_CODE|add:".svg" %}
|
||||||
|
</button>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
|
||||||
|
{% get_language_info_list for languages as languages %}
|
||||||
|
{% ocyanjson "i18n" "language_chooser_disabled_options" "" as disabled_languages %}
|
||||||
|
<form action="{% url set_language %}" method="post" class="language_form">
|
||||||
|
{% csrf_token %}
|
||||||
|
<input name="next" type="hidden" value="{{ language_neutral_url_path|default:request.path|untranslated_url }}"/>
|
||||||
|
{% for language in languages %}
|
||||||
|
{% if language.code not in disabled_languages %}
|
||||||
|
<li><button class="dropdown-item" type="submit" value="{{language.code}}" name="language">{% include "oxyan/partials/flags/"|add:language.code|add:".svg" %} {{ language.name_local|title }}</button></li>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</form>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
Reference in New Issue
Block a user