Функция pgettext
Функция pgettext применяется для перевода строки с указанием контекста,
который помогает переводчикам выбрать правильный вариант перевода,
когда одна и та же строка в разных местах должна переводиться по-разному.
Функция принимает три аргумента: контекст, исходную строку для перевода
и необязательный аргумент для множественного числа.
Возвращает переведённую строку на текущем активном языке.
В отличие от gettext, эта функция добавляет дополнительный уровень
разграничения через контекст.
Синтаксис
from django.utils.translation import pgettext
translated = pgettext(context, message)
Пример
Рассмотрим базовый пример использования функции pgettext:
from django.utils.translation import pgettext
# Контекст "button" помогает отличить кнопку "Почта"
# от почты как службы доставки
mail_button = pgettext("button", "Mail")
print(mail_button)
Результат выполнения кода:
"Почта"
Пример
Использование функции pgettext для различения одинаковых слов
в разных контекстах:
from django.utils.translation import pgettext
# Контекст "month" и "season" для слова "Spring"
month_name = pgettext("month", "Spring")
season_name = pgettext("season", "Spring")
print(month_name)
print(season_name)
Результат выполнения кода:
"Весна"
"Весна"
Пример
Использование функции pgettext в шаблонах через тег translate:
{% load i18n %}
<p>{% translate "Mail" context "button" %}</p>
<p>{% translate "Spring" context "month" %}</p>
Результат выполнения кода:
"Почта"
"Весна"
Смотрите также
-
функция
pgettext_lazy,
которая возвращает ленивый объект перевода с контекстом -
функция
gettext,
которая выполняет обычный перевод без контекста -
функция
ngettext,
которая переводит строки с учётом множественного числа -
функция
npgettext,
которая объединяет контекст и множественное число