Ответ 1
Если он еще не существует, вам нужно будет написать шаблонный контекстный процессор. Вот как вы это сделаете.
Поместите это где-нибудь:
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.core.context_processors.i18n
. Вы можете получить к нему доступ как LANGUAGE_CODE
.
Чисто для интереса, здесь определение этой функции:
def i18n(request):
from django.utils import translation
context_extras = {}
context_extras['LANGUAGES'] = settings.LANGUAGES
context_extras['LANGUAGE_CODE'] = translation.get_language()
context_extras['LANGUAGE_BIDI'] = translation.get_language_bidi()
return context_extras
Убедитесь, что вы используете RequestContext
для рендеринга вашего шаблона, а не простой Context
, или он не будет работать.