gpt4 book ai didi

python - WTForms l10n 和 i18n 不工作

转载 作者:行者123 更新时间:2023-12-03 17:02:28 24 4
gpt4 key购买 nike

我正在学习使用 flask 。我无法让 WTForms 内置翻译工作

http://wtforms.readthedocs.org/en/latest/i18n.html#using-the-built-in-translations-provider

这是我的表单类

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']})

编辑:玩了一段时间后,我放弃了 flask-WTForm 并使用纯 WTForms。然后它起作用了。我猜这是flask-WTForm上的一个错误。如果我没有得到答案,我将使用纯 WTForms

最佳答案

我使用的方法有效,但仅适用于 WTForm,而不适用于 flask-WTForm。我假设这是一个错误。我找不到任何关于它的文档。
我现在将使用纯 WTForm,因为它似乎可以解决问题。

关于python - WTForms l10n 和 i18n 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33023094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com