Функция get_locale
Функция get_locale применяется для получения
текущей локали, которая используется в данном
запросе. Локаль определяется с помощью функции-селектора,
зарегистрированной через localeselector. Если
селектор не задан, возвращается значение по умолчанию -
None. Функция не принимает параметров и возвращает
строку с кодом локали, например 'en' или 'ru'.
Синтаксис
get_locale()
Пример
Давайте создадим приложение с расширением Babel и выведем текущую локаль в ответе:
from flask import Flask, get_locale
from flask_babel import Babel
app = Flask(__name__)
babel = Babel(app)
@app.route('/')
def index():
locale = get_locale()
return f'Current locale: {locale}'
Результат выполнения кода для запроса без установленной локали:
Current locale: None
Пример
Давайте зарегистрируем селектор локали, который
будет возвращать 'ru', и получим её через
get_locale:
from flask import Flask, get_locale
from flask_babel import Babel
app = Flask(__name__)
babel = Babel(app)
@babel.localeselector
def get_user_locale():
return 'ru'
@app.route('/')
def index():
locale = get_locale()
return f'Current locale: {locale}'
Результат выполнения кода:
Current locale: ru
Пример
Давайте используем get_locale внутри
Jinja-шаблона для отображения текущего языка:
from flask import Flask, render_template
from flask_babel import Babel
app = Flask(__name__)
babel = Babel(app)
@babel.localeselector
def get_user_locale():
return 'en'
@app.route('/')
def index():
return render_template('index.html')
Содержимое шаблона index.html:
<p>Locale: {{ get_locale() }}</p>
Результат выполнения кода:
<p>Locale: en</p>
Смотрите также
-
метод
localeselector,
который регистрирует функцию выбора локали -
метод
locale_selector,
который задаёт селектор локали для Babel -
функция
get_timezone,
которая возвращает текущую временную зону -
функция
gettext,
которая переводит строку на текущий язык