如何在Django中翻译过滤器的输出

时间:2010-08-19 01:57:48

标签: django django-templates internationalization translation

我有一些模板代码如下:

<input type='submit' value='{{ need.satisfied|yesno:"Resend this document now,Send this document now" }}' />

我希望能够翻译它,但这似乎很难完成。

http://code.djangoproject.com/ticket/3804提及

{{ _("Some String") }} 

似乎适用于文字字符串,但使用时像

{{ _(Variable) }} 

给出错误

Variables and attributes may not begin with underscores: '_'

那么,你是怎么做到的?

哦,是的,我试过了:

'{% if blah %}{% trans "Resend..." %}{% else %}{% trans "Send..." %}{% endif %}'

哪个有效,但看起来很丑,我不想。当然有了Django,有一些更优雅的方法可以做到这一点......

好像是| trans过滤器会按顺序排列,但是http://code.djangoproject.com/ticket/3804无法解决这个问题

2 个答案:

答案 0 :(得分:12)

根据文档中的示例判断,可能会这样做:

<input type='submit' value='{{ need.satisfied|yesno:_("Resend this document now,Send this document now") }}' />

来源:https://docs.djangoproject.com/en/1.11/topics/i18n/translation/#string-literals-passed-to-tags-and-filters

答案 1 :(得分:1)

您是否尝试过使用blocktrans

{% blocktrans %}
    string to translate with {{ vars }}
{% endblocktrans %}