Hola a todos
Estoy haciendo pruebas en Django para trabajar con modelos multilenguaje en mi proyecto, pero como siempre hay algo que no me funciona :(
He empezado por crear un combo donde el usuario pueda escoger el idioma de preferencia, y después se actualice la variable LANGUAGE_CODE
Para esto utilicé la función set_language del módulo 'django.core.context_processors.i18n' siguiendo la documentación de Django, pero al enviar el formulario, el valor de LANGUAGE_CODE sigue siendo el que está establecido por mí en "settings.py"
Este es el código que utilizo:
"settings.py":
Código Python:
Ver originalLANGUAGE_CODE = 'es-ES'
LANGUAGES = (
('es', 'Spanish'),
('en', 'English'),
)
"urls.py":
Código Python:
Ver originalurl(r'^i18n/', include('django.conf.urls.i18n')),
"template.html":
Código HTML:
Ver original{% load i18n %}
<form action="{% url 'set_language' %}" method="post"> {% csrf_token %}
<input name="next" type="hidden" value="{{ redirect_to }}" /> {% get_language_info_list for LANGUAGES as languages %}
{% for language in languages %}
<option value="{{ language.code }}" {% if language.code == LANGUAGE_CODE %} selected="selected" {% endif %}> {{ language.name_local }} ({{ language.code }})
{% endfor %}
<input type="submit" value="Enviar" />
Cuando muestro {{ LANGUAGE_CODE }} en el template, el valor no cambia
Según la documentación de Django, la variable TEMPLATE_CONTEXT_PROCESSORS contiene el módulo 'django.core.context_processors.i18n' por defecto, por lo que no me he parado a redefinirla en "settings.py"
Saludos!