Функция pgettext
Функция pgettext применяется для перевода строки
с учётом контекста. Это полезно, когда одно и то же
слово в разных ситуациях должно переводиться по-разному.
Первым параметром передаётся контекст, вторым - сама
строка для перевода. Функция возвращает переведённую
строку с учётом указанного контекста.
Синтаксис
pgettext(context, string)
Пример
Давайте переведём строку 'May' в контексте месяца:
from flask import Flask
from flask_babel import Babel, pgettext
app = Flask(__name__)
app.config['BABEL_DEFAULT_LOCALE'] = 'ru'
babel = Babel(app)
@app.route('/')
def index():
res = pgettext('month', 'May')
return res
Результат выполнения кода:
"Май"
Пример
Давайте переведём ту же строку 'May', но в контексте имени:
from flask import Flask
from flask_babel import Babel, pgettext
app = Flask(__name__)
app.config['BABEL_DEFAULT_LOCALE'] = 'ru'
babel = Babel(app)
@app.route('/')
def index():
res = pgettext('name', 'May')
return res
Результат выполнения кода:
"Мэй"
Пример
Давайте используем pgettext внутри Jinja-шаблона
через функцию, переданную в контекст:
from flask import Flask, render_template
from flask_babel import Babel, pgettext
app = Flask(__name__)
app.config['BABEL_DEFAULT_LOCALE'] = 'ru'
babel = Babel(app)
@app.route('/')
def index():
return render_template('index.html')
<p>{{ pgettext('month', 'May') }}</p>
Результат выполнения кода:
<p>Май</p>
Смотрите также
-
функцию
gettext,
которая выполняет обычный перевод строки -
функцию
ngettext,
которая переводит строку с учётом числа -
функцию
npgettext,
которая переводит строку с учётом числа и контекста -
функцию
lazy_gettext,
которая выполняет ленивый перевод строки