python - 如何使用 Flask-Babel 在 flask_wtf 中本地化 QuerySelectField 返回的数据
问题描述
我想使用 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或Microsoft translate等翻译服务。
推荐阅读
- performance - 性能工具(灯塔)在我的 Gatsby 网站上显示非常缓慢的“交互时间”。我该如何改进它?
- ibm-cloud - Traefikv2.3 出现“无法列出 *v1beta1.IngressClass: ingressclasses.networking.k8s.io”错误
- laravel - Laravel Blade 指令添加额外的引号
- mysql - 加载本地 infile 查询运行成功,但数据未上传到服务器表 Mysql 8.0
- excel - 单元格编辑期间 Application.OnTime 调用的宏的“正常”Excel行为是什么?
- html - 使用 div 在 CSS 元素周围创建空白区域
- python - 如何在 Python-3 的成员函数声明中使用类变量?
- mule - 在 Mule 4 中尝试从 ftp 注销时发现异常
- batch-file - 批量删除确切的文件扩展名
- php - laravel 的 rest api 中的事件处理