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

Функция lazy_ngettext

Функция lazy_ngettext применяется для отложенного перевода строк с учётом числа. Она возвращает объект, который ведёт себя как строка, но фактически переводится только тогда, когда к нему обращаются. Это полезно, когда язык пользователя ещё неизвестен на момент создания строки, например при определении глобальных констант или атрибутов класса. Первым параметром передаётся строка в единственном числе, вторым - строка во множественном числе, третьим - число.

Синтаксис

lazy_ngettext(singular, plural, n)

Пример

Давайте создадим отложенный перевод для слова 'user' и выведем его:

from flask import Flask from flask_babel import Babel, lazy_ngettext app = Flask(__name__) babel = Babel(app) @app.route('/') def index(): msg = lazy_ngettext('user', 'users', 3) return str(msg)

Результат выполнения кода:

users

Пример

Давайте используем отложенный перевод в атрибуте класса, чтобы строка переводилась при обращении:

from flask import Flask from flask_babel import Babel, lazy_ngettext app = Flask(__name__) babel = Babel(app) class Message: text = lazy_ngettext('article', 'articles', 1) @app.route('/') def index(): return str(Message.text)

Результат выполнения кода:

article

Пример

Давайте передадим отложенную строку в шаблон:

from flask import Flask, render_template from flask_babel import Babel, lazy_ngettext app = Flask(__name__) babel = Babel(app) @app.route('/') def index(): msg = lazy_ngettext('hello', 'hello', 5) return render_template('index.html', msg=msg)

Шаблон для вывода:

<p>{{ msg }}</p>

Результат выполнения кода:

<p>hello</p>

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

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