django google-app-engine internationalization google-app-engine-patch

¿Cómo puedo saber por qué Django ignora el encabezado Aceptar idioma?



google-app-engine internationalization (1)

Hay un cierto orden de que Django haga las cosas en términos de i18n.

Primero verifica LANGUAGE_CODE . Es el idioma de todo el sitio y, si no se establece nada más, este es el idioma que recibe el usuario.

En segundo lugar, dado que ha agregado el LocaleMiddleware , verifica si django_language está configurado en la sesión del usuario. Sugiero borrar la información de la sesión en el DB o crear un usuario completamente nuevo para probar.

En tercer lugar, verifica si hay un django_language cookies django_language (o, en realidad, el nombre de la cookie está definido por LANGUAGE_COOKIE_NAME ). Sugeriría eliminar esta cookie.

En cuarto lugar, busca el encabezado HTTP Accept-Language . Que es donde entra la configuración de tu navegador

¡Buena suerte!

Tengo una aplicación Django (en Google App Engine) que deseo internacionalizar.

settings.py:

USE_I18N = True LANGUAGE_CODE = ''en'' # Restrict supported languages (and JS media generation) LANGUAGES = ( (''en'', ''English''), (''fr'', ''French''), ) MIDDLEWARE_CLASSES = ( ''ragendja.middleware.ErrorMiddleware'', ''django.contrib.sessions.middleware.SessionMiddleware'', # i18n ''django.middleware.locale.LocaleMiddleware'', ...

He generado archivos .po y .mo para mi aplicación en locale / fr / LC_MESSAGES (aunque no a nivel global).

Configuré el título Accept-Language de mi navegador en "fr" y Django lo ignora. Cuando miro request.LANGUAGE_CODE siempre es "en".

Puedo decir que el navegador es correcto porque visito otro sitio i18n-aware y devuelve francés.

¿Cómo puedo encontrar lo que Django piensa que falta en mi configuración?

Vi esta pregunta y no me ayudó.

Estoy ejecutando Django 1.0 usando el parche de motor de aplicación 1.0.2.2 en Google App Engine.