如何使用 Flask-Babel 将 QuerySelectField 返回的数据本地化为 flask_wtf
How to use Flask-Babel to localise data returned by QuerySelectField in a flask_wtf
我想使用 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 在此处本地化国家/地区值,而不必在数据库中以不同语言存储国家/地区?
据我所知,Flask-Babel 用于本地化静态内容(.py
、.html
等中的字符串),您不能将它用于从数据库输出的动态内容。对于此用例,您可能需要使用翻译服务,例如 Google Translation API or Microsoft translator.
我想使用 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 在此处本地化国家/地区值,而不必在数据库中以不同语言存储国家/地区?
据我所知,Flask-Babel 用于本地化静态内容(.py
、.html
等中的字符串),您不能将它用于从数据库输出的动态内容。对于此用例,您可能需要使用翻译服务,例如 Google Translation API or Microsoft translator.