0

抱歉,我是 flask-babel 的新手,也是烧瓶的新手!我的烧瓶代码:

测试.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)

索引.html

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

消息.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"

结果:

测试

消息:测试页面

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

4

1 回答 1

0

好的。我找到了答案。几乎就像您应该在更新 .po 文件时删除 .mo 文件一样。我删除message.mo,并使用python compile -d translations生成一个新的message.mo,然后它工作正常!

于 2018-05-25T09:02:59.070 回答