Использование пользовательского языка дает сообщение "Вы указали значение для параметра LANGUAGE_CODE, которого нет в параметре LANGUAGES".

Я только что обновил свой проект Django с 2.2 до 3.2, и язык сломался.

У меня был этот кусок кода, который работал нормально (внутри моего settings.py)

LANGUAGE_CODE = 'tb' 

EXTRA_LANG_INFO = {
    'tb': {
        'bidi': False,
        'code': 'tb',
        'name': 'English',
        'name_local': 'United States',
        'fallback': ['en-US'],
    },
}

import django.conf.locale
LANG_INFO = dict(**django.conf.locale.LANG_INFO, **EXTRA_LANG_INFO)
django.conf.locale.LANG_INFO = LANG_INFO

Теперь я получаю

?: (translation.E004) You have provided a value for the LANGUAGE_CODE setting that is not in the LANGUAGES setting.

Почему это происходит и как я могу это исправить?

Спасибо.

В связи с обновлениями, произошедшими в Django, вам также необходимо иметь список LANGUAGES в таком виде:

LANGUAGES = [
    ('tb', 'English')
]

Вот что мне помогло.

Вернуться на верх