如何使用动态构造的字符串的Python Babel

时间:2014-10-12 05:24:22

标签: python babel

我试图使用babel来提取和更新构造的字符串,但我仍然没有找到一个好方法(没有任何麻烦)

我目前构建字符串的方法:

def calculate_money(amount):
    (usd, cent) = calculate(amount)

    if not (usd or cent):
        return ''

    params = {}
    result = 'Buying this will cost you '
    if usd:
        result += '%(usd) USD'
        params['usd'] = usd
    if cent:
        if params:
            result += ' and '
        result += '%(cent) cent'
        params['cent'] = cent

    result += '.'
    return gettext(result, **params)

我知道pybabel无法提取动态字符串,因此我将其放入en.pode.pozh.po等文件中

msgid "Buying this will cost you %(usd) USD."
msgstr ""

msgid "Buying this will cost you %(cent) cent."
msgstr ""

msgid "Buying this will cost you %(usd) USD and %(cent) cent."
msgstr ""

但是当我跑步时

pybabel update -i messages.pot -d translations --previous

它将我珍贵的msgid部分放入#~的评论中!

你能帮我找到一个更好的方法来处理这个特定的用例吗?非常感谢和拥抱!

1 个答案:

答案 0 :(得分:0)

试试这个

po商品:

msgid = 'Buying this will cost you %s USD'

蟒:

result += {{ _("Buying this will cost you (%s) USD" % usd) }}