使用 Babel 进行 Flask WTF 本地化

Flask WTF localization with Babel

我已经使用 Flask Babel 并本地化了我的项目,但我对 WTF 表单有问题,当字段为空时我无法翻译显示的字段。有帮助吗?

这是有效的:

return jsonify({'error': gettext('Incorrect Data')}), 406

但是在处理表单class 时,Babel 不会提取该字段。像这样:

class LoginForm(Form):
    username = TextField(gettext(u'Username'), validators=[validators.Required()])
    password = PasswordField('Password', validators=[validators.Required()])

我已经尝试了 with/without 和 'u' 选项

验证器 Required 的消息是通过 Required(message=error_message) 设置的,也用 babel 翻译它们。详情请参阅 WTForms documentation

class LoginForm(Form):
    username = TextField(gettext(u'Username'), validators=[validators.Required(message='Validation failed for username')])
    password = PasswordField('Password', validators=[validators.Required(message='Validation failed for password')])

试试 lazy_gettext('')

class LoginForm(Form):
    username = TextField(lazy_gettext(u'Username'), validators=[validators.Required()])

HTML:

{{form.username.label (class="form-control-label") }}