我想翻译一个更“复杂”的模板变量,但是我遇到了意外错误。
我模板上的简单文本翻译正确。
我有一个看起来像这样的模板变量:
{{ days|index:class.gym_class.day }}
days
是工作日列表,index
是自定义标签,如下所示:
@register.filter
def index(List, i):
return List[int(i)]
变量计算为“星期一”
我的 .po 文件中有这个,并且编译了 .po 文件
msgid "Monday"
msgstr "Hétfő"
现在如果我想像这样翻译变量:
<td>{% trans days|index:class.gym_class.day %}</td>
我收到一个错误:
AttributeError at /hu/login
'list' object has no attribute 'replace'
在我看来,翻译试图在模板标签评估之前发生?
我也试过
<td>{% blocktrans %}{{ days|index:class.gym_class.day }}{% endblocktrans %}</td>
有趣的是什么都没有返回。既不打印“星期一”也不打印“Hétfő”。
如何解决这个问题?
更新:
我能够通过一种变通方法解决它:
{% with a=days|index:class.gym_class.day %}{% trans a %}{% endwith %}
然而,我仍然对为什么会发生这种情况非常感兴趣。我的猜测仍然是翻译尝试在自定义模板标签之前发生