Функция _
Функция _ применяется для перевода текстовых строк
на текущий язык приложения. Она является обёрткой над
функцией gettext и принимает первым параметром
строку для перевода. Дополнительные параметры передаются
для подстановки значений в строку формата.
Функция доступна в шаблонах Jinja2 автоматически, а в
Python-коде её нужно импортировать из модуля flask_babel
или получить из объекта приложения.
Синтаксис
_(string, **variables)
Пример
Давайте переведём простую строку в Python-коде:
data-pPathX="app.py"
from flask import Flask
from flask_babel import Babel, _
app = Flask(__name__)
app.config['BABEL_DEFAULT_LOCALE'] = 'ru'
babel = Babel(app)
@app.route('/')
def index():
return _('hello')
Результат выполнения кода:
"привет"
Пример
Давайте подставим значение в строку перевода с помощью именованной переменной:
data-pPathX="app.py"
from flask import Flask
from flask_babel import Babel, _
app = Flask(__name__)
app.config['BABEL_DEFAULT_LOCALE'] = 'ru'
babel = Babel(app)
@app.route('/')
def index():
return _('hello, %(name)s', name='user')
Результат выполнения кода:
"привет, user"
Пример
Давайте используем функцию _ внутри Jinja-шаблона:
data-pPathX="app.py"
from flask import Flask, render_template
from flask_babel import Babel
app = Flask(__name__)
app.config['BABEL_DEFAULT_LOCALE'] = 'ru'
babel = Babel(app)
@app.route('/')
def index():
return render_template('index.html')
data-pPathX="templates/index.html"
<p>{{ _('hello') }}</p>
Результат выполнения кода:
<p>привет</p>
Смотрите также
-
функцию
gettext,
которая переводит строку без обёртки -
функцию
ngettext,
которая переводит строки с учётом числа -
функцию
lazy_gettext,
которая выполняет ленивый перевод строки -
метод
localeselector,
который выбирает язык для запроса