РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
716 of 818 menu

get_language_from_request

Функция get_language_from_request применяется для определения предпочтительного языка пользователя на основе данных запроса. Она анализирует заголовок Accept-Language, параметры запроса, настройки сессии и cookies. Функция возвращает строку с кодом языка, например, 'ru' или 'en-us'.

Функция принимает объект запроса и возвращает код языка. Если язык не может быть определён, возвращается значение по умолчанию из настроек LANGUAGE_CODE.

Синтаксис

from django.utils.translation import get_language_from_request language = get_language_from_request(request, check_path=False)

Параметры функции:

request - объект HTTP-запроса, который содержит информацию о заголовках, cookies и параметрах.

check_path - булевый параметр, указывающий, нужно ли проверять URL-путь на наличие префикса языка (по умолчанию False).

Пример . С заголовком Accept-Language

Рассмотрим определение языка из заголовка Accept-Language входящего запроса:

from django.utils.translation import get_language_from_request from django.http import HttpRequest # Создаём объект запроса с заголовком Accept-Language request = HttpRequest() request.META['HTTP_ACCEPT_LANGUAGE'] = 'ru-RU,ru;q=0.9,en;q=0.8' language = get_language_from_request(request) print(language)

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

"ru"

Пример . С параметром check_path

Покажем, как функция определяет язык из URL-пути при включённом параметре check_path:

from django.utils.translation import get_language_from_request from django.http import HttpRequest # Запрос с путём, содержащим префикс языка request = HttpRequest() request.path = '/en/about/' language = get_language_from_request(request, check_path=True) print(language)

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

"en"

Пример . Во view-функции

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

from django.shortcuts import render from django.utils.translation import get_language_from_request def article_list(request): language = get_language_from_request(request) # Формируем контент в зависимости от языка context = { 'current_language': language, 'articles': get_articles_by_language(language), } return render(request, 'articles/list.html', context)

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

  • функция get_language,
    которая возвращает текущий активный язык
  • функция get_language_bidi,
    которая определяет, является ли язык двунаправленным
  • функция override,
    которая временно переопределяет текущий язык
  • функция activate,
    которая активирует указанный язык для текущего потока
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить