WTForms l10n и i18n не работают
Я учусь использовать колбу. Я не могу заставить работать встроенные переводы WTForms
http://wtforms.readthedocs.org/en/latest/i18n.html
Вот мой класс Форма
class MyBaseForm(Form):
class Meta:
locales = ['es_ES', 'es']
class LoginAdminForm(MyBaseForm):
user = StringField('user', validators=[validators.InputRequired()])
password = StringField('password', validators=[validators.InputRequired()])
Вот пойдут
app = Flask(__name__)
app.config.from_object('config')
@app.route('/admin', methods=['GET', 'POST'])
def adminLogin():
form = LoginAdminForm()
if form.validate_on_submit():
return redirect('/index') #TODO: Redirect to actual admin menu
return render_template("adminLogin.html", title="Admin login",form=form)
Вот конфиг
WTF_CSRF_ENABLED = True
SECRET_KEY = 'you-will-never-guess'
Вот adminLogin.html
{% extends "base.html" %}
{% block content %}
<form action="" method="post" name="login">
{{ form.hidden_tag() }}
<p>
Usuario:
{{ form.user }}
{% for error in form.password.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}<br>
Ingrese Contraseña:
{{ form.password }}
{% for error in form.password.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}<br>
</p>
<p><input type="submit" value="Acceder"></p>
{% endblock %}
base.html - это пустой html-скелет. Ошибки всегда появляются на английском. Я также попытался передать параметр в конструкторе тоже не сработало
form = LoginAdminForm(meta={'locales': ['en_US', 'en']})
РЕДАКТИРОВАТЬ: Через некоторое время игры я бросил флягу-WTForm и пошел с чистыми WTForms. И тогда это сработало. Я предполагаю, что это ошибка в фляге-WTForm. Если я не получу ответ, я пойду с чистыми WTForms
1 ответ
Метод, который я использовал, работал, но только с WTForm, а не с flask-WTForm. Я предполагаю, что это ошибка. Я не смог найти никакой документации об этом. Я буду использовать чистый WTForm сейчас, так как, похоже, это решит проблему.