flask babel无法使用视图返回的字符串

时间:2018-05-25 06:38:55

标签: flask flask-babel

对不起,我是烧瓶宝贝的新手,也是烧瓶! 我的烧瓶代码:

test.py

app = Flask(__name__)
app.config['BABEL_DEFAULT_LOCALE'] = 'en'
babel = Babel(app)

@app.route('/', methods=['GET'])
def hello_world():
    message = _(u'测试  页面')
    return render_template('index.html', message=message)

的index.html

<h1>{{ _("测试") }}</h1>
<h2>{{ _("消息:%(m)s", m=message) }}</h2>

message.po

#: learnflask.py:23
msgid "测试  页面"
msgstr "test page"

#: templates/index.html:8
msgid "测试"
msgstr "Test"

#: templates/index.html:9
#, python-format
msgid "消息:%(m)s"
msgstr "message: %(m)s"

结果:

  

测试

     

消息:测试页面

第一个字符串是正确翻译的,但不是第二个字符串。我想知道如何让它发挥作用。请帮忙。谢谢!

1 个答案:

答案 0 :(得分:0)

行。我找到了答案。这几乎就像你应该在更新.po文件时删除.mo文件一样。 我删除了message.mo,并使用python compile -d translations生成新的message.mo,然后就可以了!