Функция pgettext

Функция pgettext применяется для перевода строки с указанием контекста, который помогает переводчикам выбрать правильный вариант перевода, когда одна и та же строка в разных местах должна переводиться по-разному. Функция принимает три аргумента: контекст, исходную строку для перевода и необязательный аргумент для множественного числа. Возвращает переведённую строку на текущем активном языке. В отличие от gettext, эта функция добавляет дополнительный уровень разграничения через контекст.

Синтаксис

pythonfrom django.utils.translation import pgettext

translated = pgettext(context, message)

Пример

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

pythonfrom django.utils.translation import pgettext

# Контекст "button" помогает отличить кнопку "Почта"
# от почты как службы доставки
mail_button = pgettext("button", "Mail")
print(mail_button)

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

python"Почта"

Пример

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

pythonfrom django.utils.translation import pgettext

# Контекст "month" и "season" для слова "Spring"
month_name = pgettext("month", "Spring")
season_name = pgettext("season", "Spring")

print(month_name)
print(season_name)

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

python"Весна"
"Весна"

Пример

Использование функции pgettext в шаблонах через тег translate:

ninja{% load i18n %}
<p>{% translate "Mail" context "button" %}</p>
<p>{% translate "Spring" context "month" %}</p>

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

html"Почта"
"Весна"

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

  • функция pgettext_lazy,
    которая возвращает ленивый объект перевода с контекстом
  • функция gettext,
    которая выполняет обычный перевод без контекста
  • функция ngettext,
    которая переводит строки с учётом множественного числа
  • функция npgettext,
    которая объединяет контекст и множественное число