DJANGO 翻译自定义模板标签变量

时间:2021-07-08 12:49:58

标签: python django translation

我想翻译一个更“复杂”的模板变量,但是我遇到了意外错误。

我模板上的简单文本翻译正确。

我有一个看起来像这样的模板变量:

{{ 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 %}

然而,我仍然对为什么会发生这种情况非常感兴趣。我的猜测仍然是翻译尝试在自定义模板标签之前发生

0 个答案:

没有答案