Метод init_app
Метод init_app применяется к объекту
класса Babel и привязывает его к
приложению Flask. Первым параметром передаётся
экземпляр приложения app. Дополнительно
можно передать параметры конфигурации: locale_selector
для выбора локали и timezone_selector для
выбора часового пояса. Метод вызывается после
создания приложения и объекта Babel.
Синтаксис
babel.init_app(app, [locale_selector], [timezone_selector])
Пример
Давайте создадим приложение Flask и проинициализируем Babel с функцией выбора локали по умолчанию:
from flask import Flask
from flask_babel import Babel
app = Flask(__name__)
babel = Babel()
def get_locale():
return 'en'
babel.init_app(app, locale_selector=get_locale)
@app.route('/')
def index():
return 'hello'
После инициализации Babel становится доступен для всех маршрутов приложения.
Пример
Давайте передадим функцию выбора часового пояса вместе с функцией выбора локали:
from flask import Flask
from flask_babel import Babel
app = Flask(__name__)
babel = Babel()
def get_locale():
return 'ru'
def get_timezone():
return 'Europe/Moscow'
babel.init_app(
app,
locale_selector=get_locale,
timezone_selector=get_timezone
)
@app.route('/')
def index():
return 'hello'
Результат выполнения кода при запросе к корневому адресу:
hello
Смотрите также
-
класс
Babel,
который управляет локализацией во Flask -
метод
localeselector,
который регистрирует функцию выбора локали -
метод
timezoneselector,
который регистрирует функцию выбора часового пояса -
функцию
get_locale,
которая возвращает текущую локаль