如何使用Flask-Babel在flask_wtf中本地化QuerySelectField返回的数据

时间:2018-07-07 22:30:03

标签: python flask flask-wtforms flask-babel

我想使用Flask-Babel本地化应用程序中的内容。现在,我了解了Flask-Babel的工作原理,并将其用于本地化静态内容。

我使用Flask-wtf创建了许多表格,它们使用QuerySelectField从数据库中获取数据。这是具有QuerySelectField的注册表单。

from flask_babel import _, lazy_gettext as _l

class RegistrationForm(FlaskForm):
    username = StringField(_l('Username'), validators=[DataRequired()])
    email = StringField(_l('Email'), validators=[DataRequired(), Email()])
    country = QuerySelectField(_l('Country'),
                           blank_text=u'-- please choose --',
                           query_factory=lambda: Country.query,
                           allow_blank=False)
    password = PasswordField(_l('Password'), validators=[DataRequired()])
    password2 = PasswordField(
        _l('Repeat Password'), validators=[DataRequired(),
                                           EqualTo('password')])
    submit = SubmitField(_l('Register'))

无论如何,在这里可以使用babel将国家/地区值本地化,而不必在数据库中以其他语言存储国家/地区?

1 个答案:

答案 0 :(得分:0)

据我所知,Flask-Babel用于本地化静态内容.py.html等中的字符串),您不能使用它用于从数据库输出的动态内容。对于此用例,您可能需要使用翻译服务,例如Google Translation APIMicrosoft translator