init file
from flask import Flask
from flask_babel import Babel
app = Flask(__name__)
app.config['BABEL_DEFAULT_LOCALE'] = 'es'
babel = Babel(app)
from flask import Flask
from flask_babel import Babel
app = Flask(__name__)
app.config['BABEL_DEFAULT_LOCALE'] = 'es'
babel = Babel(app)
@babel.localeselector
def get_locale():
return 'es'
if __name__ == '__main__':
app.run()
команды, используемые для генерации переведенного текста
pybabel extract -F babel.cfg -o messages.pot .
pybabel init -i messages.pot -d translations -l es
compile -d translations
html на примере шаблона index.html
{% extends 'base.html' %}
{% block header %}
<h1>{% block title %}{{ _("Gallery") }}{% endblock %}</h1>
{% if 'user_id' in session %}
<h1>{{ _("hello and welcome") }}</h1>
{% endif %}
{% endblock %}
(...)
каталог:
appfolder
|_____init.py
translations
|_____es
|_____LC_MESSAGES
|_________messages.mo
|_________messages.po
templates
|_____index.html</code>
Я просто хотел перевести текст на шаблонах, но я попробовал всеи я не понимаю, как это не переводится, когда я генерирую файл .pot, он реконфигурирует все переводы и строит их на .po файле и заполняет переводы, компилирует его в .mo и запускает сайт, чтобы показатьна языке es он показывает только исходный текст.
PS: я перехватил переменную beign, используемую babel, если это поможет