Класс Babel
Класс Babel применяется к приложению Flask
и добавляет поддержку переводов, форматирования дат,
времени, чисел и валют. Первым параметром обычно
передаётся приложение Flask, а именованные параметры
задают каталог переводов, локаль по умолчанию и
часовой пояс по умолчанию.
Синтаксис
from flask_babel import Babel
babel = Babel(app, [default_locale], [default_timezone], [locale_selector], [timezone_selector])
Пример
Давайте подключим класс Babel к приложению Flask
и получим текущую локаль:
from flask import Flask
from flask_babel import Babel, get_locale
app = Flask(__name__)
app.config['BABEL_DEFAULT_LOCALE'] = 'en'
babel = Babel(app)
@app.route('/')
def index():
return str(get_locale())
Результат выполнения кода:
"en"
Пример
Давайте зададим локаль и часовой пояс по умолчанию
через параметры класса Babel:
from flask import Flask
from flask_babel import Babel, get_locale, get_timezone
app = Flask(__name__)
babel = Babel(
app,
default_locale='ru',
default_timezone='Europe/Moscow'
)
@app.route('/')
def index():
return f'{get_locale()} {get_timezone()}'
Результат выполнения кода:
"ru Europe/Moscow"
Пример
Давайте отформатируем дату с помощью метода
format_datetime, который доступен после
подключения класса Babel:
from datetime import datetime
from flask import Flask
from flask_babel import Babel, format_datetime
app = Flask(__name__)
babel = Babel(app, default_locale='en')
@app.route('/')
def index():
dt = datetime(2024, 1, 15, 12, 30)
return format_datetime(dt)
Результат выполнения кода:
"Jan 15, 2024, 12:30:00 PM"
Смотрите также
-
метод
init_app,
который подключает Babel к приложению -
функцию
get_locale,
которая возвращает текущую локаль -
функцию
get_timezone,
которая возвращает текущий часовой пояс -
функцию
format_datetime,
которая форматирует дату и время