РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
514 of 643 menu

Метод locale_selector

Метод locale_selector применяется к объекту Babel и позволяет указать функцию, которая определяет локаль для текущего запроса. Flask-Babel вызывает эту функцию перед обработкой каждого запроса и использует возвращённое значение как текущую локаль. Функция должна принимать один аргумент - объект запроса и возвращать строку с кодом локали, например 'en' или 'ru'.

Если функция не задана, Flask-Babel пытается определить локаль автоматически из заголовков запроса или из параметров URL. Метод locale_selector полезен, когда нужно реализовать собственную логику выбора языка, например на основе сессии, cookie или пользовательских настроек.

Синтаксис

babel.locale_selector(func)

Параметр func - это функция, которая принимает объект запроса и возвращает строку с кодом локали.

Пример

Давайте создадим приложение Flask с Babel и зададим функцию выбора локали, которая берёт язык из параметра URL lang:

from flask import Flask, request from flask_babel import Babel app = Flask(__name__) babel = Babel(app) @babel.locale_selector def get_locale(): return request.args.get('lang', 'en') @app.route('/') def index(): return 'hello'

Результат выполнения кода для адреса /?lang=ru:

hello

Пример

Давайте сохраним выбранный язык в сессии и будем использовать его при последующих запросах:

from flask import Flask, request, session from flask_babel import Babel app = Flask(__name__) app.secret_key = 'secret' babel = Babel(app) @babel.locale_selector def get_locale(): if 'lang' in request.args: session['lang'] = request.args['lang'] return session.get('lang', 'en') @app.route('/') def index(): return 'hello'

Результат выполнения кода для адреса /?lang=ru:

hello

Смотрите также

  • класс Babel,
    который управляет интернационализацией во Flask
  • метод init_app,
    который инициализирует Babel для приложения
  • метод timezone_selector,
    который задаёт функцию выбора часового пояса
  • функцию get_locale,
    которая возвращает текущую локаль
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить