Если его еще не было, вам нужно написать процессор контекста шаблона . Вот как ты это сделаешь.
Положите это куда-нибудь:
def lang_context_processor(request):
return {'LANG': request.LANGUAGE_CODE}
Затем добавьте ссылку на параметр TEMPLATE_CONTEXT_PROCESSORS
. Примерно так:
from django.conf import global_settings
TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
'myproject.myapp.templatecontext.lang_context_processor',
)
(Я рекомендую добавить к глобальным настройкам, потому что это означает, что вы не нарушаете работу случайно, когда к значениям по умолчанию добавляется новый процессор контекста.)
Однако, он существует, как встроенный обработчик контекста шаблона django.template.context_processors.i18n
. Вы можете получить к нему доступ как LANGUAGE_CODE
.
Чисто для интереса, вот определение этой функции:
def i18n(request):
from django.utils import translation
return {
'LANGUAGES': settings.LANGUAGES,
'LANGUAGE_CODE': translation.get_language(),
'LANGUAGE_BIDI': translation.get_language_bidi(),
}
Убедитесь, что вы используете RequestContext
для рендеринга шаблона, а не обычный Context
, иначе он не будет работать.