from wtforms.fields.simple import TextField, PasswordField
from wtforms import validators
from wtforms.ext.i18n.form import Form
class BaseForm(Form):
LANGUAGES = ['zh']
class LoginForm(BaseForm):
username = TextField("Username", [validators.Required()])
psw = PasswordField("Password", [validators.Required()])
上面的代码工作正常,表单提示信息可以翻译成中文。
我遇到的问题是如何使用Flask-wtf而不是wtforms? 我试过了:
from wtforms import validators
from flask.ext.wtf import Form
from wtforms.fields.simple import TextField, PasswordField
class BaseForm(Form):
LANGUAGES = ['zh']
class LoginForm(BaseForm):
username = TextField("Username", [validators.Required()])
psw = PasswordField("Password", [validators.Required()])
提示信息仍为英文。有人可以给我建议吗?感谢。
答案 0 :(得分:0)
固定!!
http://pythonhosted.org/Flask-Babel/
将以下代码添加到您的应用脚本
from flask.ext.babel import Babel
babel = Babel(app)
app.config['BABEL_DEFAULT_LOCALE'] = 'zh_Hans_CN'
在您的应用程序旁边创建babel.cfg:
[python: **.py]
[jinja2: **/templates/**.html]
extensions=jinja2.ext.autoescape,jinja2.ext.with_
将wtforms.po / wtforms.mo复制到文件夹" translations / zh_Hans_CN / LC_MESSAGES" (由Flask-Babel创建)在您的应用程序旁边
然后不需要使用Flask-WTF触摸任何东西,它可以与Flask-Babel auto一起使用。