Функция get_language

Функция get_language применяется для получения текущего активного языка в приложении Django. Она возвращает строку с кодом языка в формате ISO 639-1, например, 'en' для английского или 'ru' для русского. Функция учитывает язык, установленный через промежуточное ПО локализации, сессию пользователя или cookie.

Функция не принимает никаких аргументов и всегда возвращает строку с кодом текущего языка. Если язык не был явно установлен, возвращается значение из настроек LANGUAGE_CODE.

Синтаксис

pythonfrom django.utils.translation import get_language

current_language = get_language()

Пример

Давайте получим текущий язык в представлении и выведем его пользователю:

pythonfrom django.shortcuts import render
from django.utils.translation import get_language

def index(request):
  current_lang = get_language()
  return render(request, 'index.html', {'current_language': current_lang})

Результат выполнения кода при активном русском языке:

python"ru"

Пример

Используем функцию get_language для условной логики в зависимости от текущего языка:

pythonfrom django.utils.translation import get_language

def get_greeting():
  lang = get_language()

  if lang == 'ru':
    return "Привет!"
  elif lang == 'en':
    return "Hello!"
  elif lang == 'fr':
    return "Bonjour!"
  else:
    return "Hi!"

Результат выполнения кода при активном английском языке:

python"Hello!"

Пример

Используем функцию get_language в шаблонах для динамического изменения контента:

pythonfrom django.template import Template, Context
from django.utils.translation import get_language
from django.template import loader

def render_language_specific_content(request):
  lang = get_language()

  template = loader.get_template('content.html')
  context = {'lang': lang}
  return template.render(context, request)

Результат выполнения кода при активном французском языке:

python"Content displayed in: fr"

Смотрите также

  • функция get_language_bidi,
    которая определяет направление письма текущего языка
  • функция activate,
    которая активирует указанный язык для текущего потока
  • функция get_language_from_request,
    которая определяет язык из HTTP-запроса
  • тег get_current_language,
    который возвращает текущий язык в шаблонах