Как использовать wtforms.po с Flask-WTF

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

Подсказка по-прежнему на английском языке. Может ли кто-нибудь дать мне совет? Спасибо.


person Andy.sin    schedule 25.09.2014    source источник


Ответы (1)


Исправлено!!

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.

person Andy.sin    schedule 26.09.2014