如何在Flask-WTF中使用wtforms.po

时间:2014-09-25 12:50:04

标签: flask-wtforms

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()])

提示信息仍为英文。有人可以给我建议吗?感谢。

1 个答案:

答案 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一起使用。