На моем сайте Django 2.0 я хочу установить атрибут lang
тега html на текущий язык локали. В моем base.html
который расширяют другие шаблоны, я использую get_current_language
следующим образом
{% load i18n %}
{% get_current_language as LANGUAGE_CODE %}
<!DOCTYPE html>
<html lang="{{ LANGUAGE_CODE }}">
...
</html>
На сайте есть переводы на несколько языков. Если я переключаю язык в браузере, я вижу правильные переводы, но атрибут lang
всегда будет содержать en
.
У меня в settings.py
меня есть
USE_I18N = True
LANGUAGE_CODE = 'en-us'
и по предложению Горана следующий порядок промежуточного программного обеспечения
MIDDLEWARE = [
'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',
]
Настройка LANGUAGES
не установлена.
По предложению Костадина Славова я попытался напечатать язык с точки зрения. Кажется, что get_current_language вызывает django.utils.translation.get_language, поэтому я вставил следующее на мой взгляд
from django.utils import translation
print(translation.get_language())
Он печатает правильное значение (например, de
при доступе к представлению с браузером, настроенным на немецкий язык).
Что еще мне не хватает?