Не могу понять, почему не работает перевод django (i18n). Я использую английский в коде, и я написал переводы на французский. Странно, это работает, когда я использую django.test.client.Client, но не когда я использую веб-браузер.
Я попытался установить для Accept-Language значение fr в настройках своего браузера, а также попытался удалить ключ HTTP_ACCEPT_LANGUAGE из заголовка запроса.
Я установил язык fr с помощью представления setlang в django.conf.urls.i18n.
Когда я делаю:
{% load i18n %}
{% get_current_language as LANGUAGE_CODE %}
Я успешно получаю fr, даже если строка, которая должна быть преобразована на моей странице, все еще на английском языке.
У меня есть это в моих настройках:
USE_I18N = True
#Probably ignored because of the django_language cookie
LANGUAGE_CODE = 'fr'
MIDDLEWARE_CLASSES = (
'django.middleware.cache.UpdateCacheMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.transaction.TransactionMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
)
Я скомпилировал мой перевод, и он работает, так как я получаю ожидаемый результат при использовании тестового клиента.
Я почти уверен, что проблема в том, что браузер посылает django, что влияет на перевод, но я не могу понять, что. Я сравнил два и единственные ссылки на язык - fr в обеих версиях.
У кого-нибудь есть предложения по поводу того, что я могу попробовать?
Я провел больше исследований с отладчиком и обнаружил, что каталог в _active не содержит мои переводы при использовании браузера, но содержит при использовании тестового клиента. Что может вызвать такое поведение?