我试图使用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.po
,de.po
,zh.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
部分放入#~
的评论中!
你能帮我找到一个更好的方法来处理这个特定的用例吗?非常感谢和拥抱!
答案 0 :(得分:0)
试试这个
po商品:
msgid = 'Buying this will cost you %s USD'
蟒:
result += {{ _("Buying this will cost you (%s) USD" % usd) }}