Функция gettext

Функция gettext применяется для перевода строковых сообщений на текущий активный язык. Она принимает строку в качестве аргумента и возвращает ее перевод, если он доступен в файлах перевода, или исходную строку, если перевод отсутствует. Функция является основным инструментом интернационализации в Django и обычно импортируется как псевдоним _ для удобства использования.

Синтаксис

pythonfrom django.utils.translation import gettext

translated = gettext(message)

Пример

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

pythonfrom django.utils.translation import gettext

greeting = gettext("Hello, World!")
print(greeting)

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

python"Привет, Мир!"

Пример

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

pythonfrom django.utils.translation import gettext as _

message = _("Welcome to our website")
print(message)

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

python"Bienvenue sur notre site web"

Пример

Функция может использоваться в представлениях для перевода динамических сообщений:

pythonfrom django.shortcuts import render
from django.utils.translation import gettext as _

def home(request):
  context = {
    'greeting': _("Good morning"),
    'farewell': _("Goodbye"),
  }
  return render(request, 'home.html', context)

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

  • функция gettext_lazy,
    которая откладывает перевод до момента использования строки
  • функция ngettext,
    которая переводит строки с учетом множественного числа
  • функция pgettext,
    которая переводит строки с учетом контекста
  • тег translate,
    который выполняет перевод строк в шаблонах