language settings and html picker added

This commit is contained in:
Thomas Nahuel Rusiecki 2025-03-12 15:59:19 -03:00
parent 1e388b2c26
commit 1246409cb2
4 changed files with 50 additions and 2 deletions

View file

@ -0,0 +1,19 @@
{% load i18n language_code %}
<div class="dropdown">
<form action="{% url 'set_language' %}" method="post">
{% csrf_token %}
<button class="btn btn-tertiary dropdown-toggle" type="button" id="languageDropdown" data-bs-toggle="dropdown" aria-expanded="false">
{% get_current_language as LANGUAGE_CODE %}
{% get_language_info_list for LANGUAGES as languages %}
{{ LANGUAGE_CODE|get_language_code:languages }}
</button>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="languageDropdown">
{% for lang in languages %}
<li>
<button class="dropdown-item" type="submit" name="language" value="{{ lang.code }}">{{ lang.name }}</button>
</li>
{% endfor %}
</ul>
</form>
</div>

View file

@ -0,0 +1,11 @@
from django import template
from django.utils.translation import get_language_info
register = template.Library()
@register.filter
def get_language_code(language_code, languages):
for lang in languages:
if lang['code'] == language_code:
return lang['name_local'].lower()
return language_code.lower()

View file

@ -68,6 +68,11 @@ EVIDENCES_DIR = config("EVIDENCES_DIR", default=os.path.join(BASE_DIR, "db"))
# Application definition
LOCALE_PATHS = [
os.path.join(BASE_DIR, 'locale'),
]
INSTALLED_APPS = [
# "django.contrib.admin",
"django.contrib.auth",
@ -119,7 +124,13 @@ TEMPLATES = [
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
"django.template.context_processors.i18n",
],
'libraries':{
'get_language_code': 'dashboard.templatetags.language_code',
}
},
},
]
@ -172,8 +183,9 @@ if TIME_ZONE == "UTC":
USE_L10N = True
LANGUAGES = [
('es', 'Spanish'),
('en', 'English'),
('es', 'español'),
('en', 'english'),
('ca', 'català'),
]
# Static files (CSS, JavaScript, Images)

View file

@ -16,6 +16,8 @@ Including another URLconf
"""
from django.conf import settings
from django.urls import path, include
from django.conf.urls.i18n import i18n_patterns
from django.views.i18n import set_language
urlpatterns = [
# path('api/', include('snapshot.urls')),
@ -30,6 +32,10 @@ urlpatterns = [
path('api/', include('api.urls')),
]
urlpatterns += i18n_patterns(
path("language/", set_language, name='set_language'),
)
if settings.DPP:
urlpatterns.extend([
path('dpp/', include('dpp.urls')),