Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Problemas con la función set_language

Estas en el tema de Problemas con la función set_language en el foro de Python en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 28/06/2014, 16:40
Avatar de kojicomics  
Fecha de Ingreso: junio-2013
Mensajes: 49
Antigüedad: 11 años, 5 meses
Puntos: 1
Problemas con la función set_language

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 original
  1. LANGUAGE_CODE = 'es-ES'
  2.  
  3. LANGUAGES = (
  4.     ('es', 'Spanish'),
  5.     ('en', 'English'),
  6.     )

"urls.py":

Código Python:
Ver original
  1. url(r'^i18n/', include('django.conf.urls.i18n')),

"template.html":

Código HTML:
Ver original
  1. {% load i18n %}
  2. <form action="{% url 'set_language' %}" method="post">
  3.     {% csrf_token %}
  4.     <input name="next" type="hidden" value="{{ redirect_to }}" />
  5.     <select name="language">
  6.         {% get_language_info_list for LANGUAGES as languages %}
  7.         {% for language in languages %}
  8.             <option value="{{ language.code }}" {% if language.code == LANGUAGE_CODE %} selected="selected" {% endif %}>
  9.                 {{ language.name_local }} ({{ language.code }})
  10.             </option>
  11.         {% endfor %}
  12.     </select>
  13.     <input type="submit" value="Enviar" />
  14. </form>

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!

Última edición por razpeitia; 28/06/2014 a las 19:27
  #2 (permalink)  
Antiguo 29/06/2014, 08:05
Avatar de kojicomics  
Fecha de Ingreso: junio-2013
Mensajes: 49
Antigüedad: 11 años, 5 meses
Puntos: 1
Respuesta: Problemas con la función set_language

Ya lo he solucionado

Simplemente hay que añadir el módulo 'django.middleware.locale.LocaleMiddleware' a la lista MIDDLEWARE_CLASSES en el archivo "settings.py".

Un saludo!

Etiquetas: multilenguaje
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:02.