Ответ 1
Я решил это, включив код в шаблон
{% load i18n %}
{% get_current_language as LANGUAGE_CODE %}
и переменная LANGUAGE_CODE
имеет нужное значение (см. также django docs для примера использования).
Мне нужно встроить текущую локаль в вывод шаблона Django (как часть URL, чтобы быть точным). Я знаю, что я могу получить доступ к текущему языку как {{ LANGUAGE_CODE }}
, если я { load i18n }
, но есть ли аналогичный способ доступа к текущему языку?
Я полагаю, что я мог бы использовать to_locale()
в логике представления и помещать его в контекст для шаблона, но я ищу нечто более общее, которое может быть частью самой структуры Django. Есть ли такой синтаксис?
Я решил это, включив код в шаблон
{% load i18n %}
{% get_current_language as LANGUAGE_CODE %}
и переменная LANGUAGE_CODE
имеет нужное значение (см. также django docs для примера использования).
Вы можете захотеть написать свой собственный процессор контекста, который вызовет to_locale
и автоматически заполнит контекст результатом - он будет просто быть чем-то вроде этого.
from django.utils.translation import to_locale, get_language
def locale(request):
return {'LOCALE': to_locale(get_language())}
Я думал о реализации собственного настраиваемого тега шаблона, который просто выводит to_locale(get_language())
, но ответ выше проще реализовать, поэтому мне это нравится лучше.