使用flask-admin时如何自动翻译字段标签? [英] How to translate field label automatically when using flask-admin?

查看:83
本文介绍了使用flask-admin时如何自动翻译字段标签?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道当Flask-admin生成烧瓶标签时,如何使用Flask-BabelEx(由Flask-Admin建议)自动转换字段标签.

I would like to know how to use Flask-BabelEx(which is recommended by Flask-Admin) to translate field labels automatically when it's been generated by flask-admin.

例如,如果我有一个定义如下的字段:

For example, If I have a field which is defined as below:

class PurchaseOrder(Base):
    __tablename__ = 'purchase_order'
    id = Column(Integer, primary_key=True)
    logistic_amount = Column(Numeric(xxxx))

    def __unicode__(self):
        return self.id

该视图被视为

class PurchaseOrderAdmin(ModelView):
    column_labels = dict(logistic_amount=gettext("logistic_amount"),)

然后按如下所示向管理员注册:

Then register to the admin as below:

    admin.add_view(PurchaseOrderAdmin(PurchaseOrder, db_session, category='Order'))

这是我初始化通天塔的方式:

Here is how I init babel:

babel = Babel(app, default_locale="zh_CN", default_timezone="CST")

@babel.localeselector
def get_locale():
    override = request.args.get('lang')
    if override:
        session['lang'] = override
    return session.get('lang', 'zh_CN')

我已经生成了以下文件:

And I have generated the follow files:

translations/zh_CN/LC_MESSAGES/messages.mo
translations/zh_CN/LC_MESSAGES/messages.po

文件messages.po的内容如下所示:

Content of file messages.po shown below:

msgid ""
msgstr ""
msgid "logistic_amount"
msgstr "物流费用"

但是似乎键(logistic_amount)而不是翻译后的字符串(物流费用)一直显示在列表和编辑页面中.

But seems the key(logistic_amount) rather than the translated string(物流费用) is displaying in the list and edit page all the time.

这里还缺少什么吗?

感谢您的帮助.

推荐答案

我们需要使用lazy_gettext而不是gettext来使其正常工作,示例如下:

We need to use lazy_gettext rather than gettext to make it work, examples as below:

adminViews.add_view(SalesOrderAdmin(SalesOrder, db_session, name=lazy_gettext("Sales Order")))

还有

class PurchaseOrderAdmin(ModelView):
    column_labels = dict(logistic_amount=lazy_gettext("logistic_amount"),)

这篇关于使用flask-admin时如何自动翻译字段标签?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆