mirror of
https://github.com/wger-project/wger.git
synced 2026-02-18 00:17:51 +01:00
feat: make the language dropdown items set the language cookie
Include i18n urls then add a form to set the cookie using the currently implemented items
This commit is contained in:
@@ -1,11 +1,11 @@
|
|||||||
{% load i18n static %}
|
{% load i18n static %}
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a class="dropdown-item" href="{{ i18n_path }}">
|
<button class="dropdown-item" type="button" data-language="{{ code }}">
|
||||||
<img src="{% static path %}"
|
<img src="{% static path %}"
|
||||||
width="20"
|
width="20"
|
||||||
alt="{% translate name %}"
|
alt="{% translate name %}"
|
||||||
title="{% translate name %}">
|
title="{% translate name %}">
|
||||||
{% translate name %} / <small>{{ name }}</small>
|
{% translate name %} / <small>{{ name }}</small>
|
||||||
</a>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -203,15 +203,32 @@
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
<ul class="dropdown-menu language-menu" aria-labelledby="btnGroupLanguages">
|
<ul class="dropdown-menu language-menu" aria-labelledby="btnGroupLanguages">
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="" class="dropdown-item">
|
<a href="" class="dropdown-item">
|
||||||
<span class="{% fa_class 'globe' %}"></span>
|
<span class="{% fa_class 'globe' %}"></span>
|
||||||
<span>{% translate "Browser language" %}</span>
|
<span>{% translate "Browser language" %}</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% for language in languages %}
|
|
||||||
{% language_select language %}
|
<form id="language-form" action="{% url 'set_language' %}" method="post">
|
||||||
{% endfor %}
|
{% csrf_token %}
|
||||||
|
<input name="next" type="hidden" value="{{ redirect_to }}">
|
||||||
|
<input type="hidden" name="language" id="language-input">
|
||||||
|
{% for language in languages %}
|
||||||
|
{% language_select language %}
|
||||||
|
{% endfor %}
|
||||||
|
</form>
|
||||||
|
<script>
|
||||||
|
document.querySelectorAll('[data-language]').forEach(item => {
|
||||||
|
item.addEventListener('click', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
document.getElementById('language-input').value = this.dataset.language;
|
||||||
|
document.getElementById('language-form').submit();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<hr class="dropdown-divider"></hr>
|
<hr class="dropdown-divider"></hr>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -297,6 +297,7 @@ urlpatterns = i18n_patterns(
|
|||||||
# URLs without language prefix
|
# URLs without language prefix
|
||||||
#
|
#
|
||||||
urlpatterns += [
|
urlpatterns += [
|
||||||
|
path("i18n/", include("django.conf.urls.i18n")),
|
||||||
path('robots.txt', TextTemplateView.as_view(template_name='robots.txt'), name='robots'),
|
path('robots.txt', TextTemplateView.as_view(template_name='robots.txt'), name='robots'),
|
||||||
# API
|
# API
|
||||||
path('api/v2/exercise/search/', exercises_api_views.search, name='exercise-search'),
|
path('api/v2/exercise/search/', exercises_api_views.search, name='exercise-search'),
|
||||||
|
|||||||
Reference in New Issue
Block a user