Функция get_language
Функция get_language применяется для получения текущего активного языка в приложении Django. Она возвращает строку с кодом языка в формате ISO 639-1, например, 'en' для английского или 'ru' для русского. Функция учитывает язык, установленный через промежуточное ПО локализации, сессию пользователя или cookie.
Функция не принимает никаких аргументов и всегда возвращает строку с кодом текущего языка. Если язык не был явно установлен, возвращается значение из настроек LANGUAGE_CODE.
Синтаксис
from django.utils.translation import get_language
current_language = get_language()
Пример
Давайте получим текущий язык в представлении и выведем его пользователю:
from 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})
Результат выполнения кода при активном русском языке:
"ru"
Пример
Используем функцию get_language для условной логики в зависимости от текущего языка:
from 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!"
Результат выполнения кода при активном английском языке:
"Hello!"
Пример
Используем функцию get_language в шаблонах для динамического изменения контента:
from 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)
Результат выполнения кода при активном французском языке:
"Content displayed in: fr"
Смотрите также
-
функция
get_language_bidi,
которая определяет направление письма текущего языка -
функция
activate,
которая активирует указанный язык для текущего потока -
функция
get_language_from_request,
которая определяет язык из HTTP-запроса -
тег
get_current_language,
который возвращает текущий язык в шаблонах