Django: отображение текущей локали в шаблоне - PullRequest
23 голосов
/ 15 июня 2011

Мне нужно встроить текущую локаль в вывод шаблона Django (если быть точным, как часть URL).Я знаю, что могу получить доступ к текущему языку как {{ LANGUAGE_CODE }}, если я { load i18n }, но есть ли аналогичный способ доступа к текущему языку ?

Полагаю,Я мог бы использовать to_locale() в логике представления и поместить его в контекст для шаблона, но я ищу что-то более общее, что может быть частью самой структуры Django.Есть ли такой синтаксис?

Ответы [ 3 ]

29 голосов
/ 11 августа 2012

Я решил эту проблему, включив приведенный ниже код в шаблон

{% load i18n %}
{% get_current_language as LANGUAGE_CODE %}

, и переменная LANGUAGE_CODE имеет требуемое значение (см. Также django docs для примера использования).

9 голосов
/ 15 июня 2011

Возможно, вы захотите написать свой собственный процессор контекста , который будет вызывать to_locale и автоматически заполнить контекст результатом - это будет что-то вроде этого.

from django.utils.translation import to_locale, get_language
def locale(request):
    return {'LOCALE': to_locale(get_language())}
2 голосов
/ 16 июня 2011

Я думал о реализации моего собственного пользовательского тега шаблона , который просто вывел бы to_locale(get_language()), но ответ выше проще реализовать, поэтому мне больше нравится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...