Django's LocaleMiddleware
intenta determinar la configuración regional a partir de la solicitud especificada y reemplaza el LANGUAGE_CODE
en consecuencia. Pasa a través de los siguientes pasos:
- Cheques la sesión para una variable de sesión llamada
django_language
. Establezca el idioma en la configuración regional dada en esta sesión. Si no existe, va a 2.
- Comprueba las cookies para un conjunto de variables similar (puede definir el nombre usted mismo). No existe va a 3.
- Intenta determinar el idioma del encabezado
HTTP_ACCEPT_LANGUAGE
. Si no es posible, irá a 4.
- Por fin usará la configuración
LANGUAGE_CODE
como configuración local.
En todas las etapas, excepto 4 se comprobará si el idioma se da en su entorno LANGUAGES
, que es una tupla de 2-tuplas que representan código de idioma y el título del lenguaje. Asegúrese de establecer/sobrescribir el valor predeterminado, ya que el valor predeterminado sería una tupla de todos los idiomas disponibles de Django.
Si tiene varios idiomas en su sitio Django:
Asegúrese de que su cookies de sesión o se han establecido correctamente. Puede usar la vista interna de Django para configurar el idioma (django.views.i18n.set_language
).
Si tienes un solo idioma:
Si sólo tiene Español por lo general no tiene que molestarse con esto. Solo asegúrese de que LANGUAGES
y LANGUAGE_CODE
estén configurados. No intentará configurar el idioma de las páginas en el idioma de su navegador si no se proporciona en LANGUAGES
. Además, debe asegurarse de que USE_I18N = True
. Sin embargo, ese debería ser el valor predeterminado, así que al menos asegúrese de no haberlo configurado en False
en algún lugar.
Yep. He seguido todo esto ... parece que no puedo traducirlo. Me esta volviendo loco. Estoy seguro de que me estoy perdiendo algo que no está en la lista o algo oscuro. Tal vez después de dormir lo conseguiré ... – intargc