是否有理由在django admin app的app_index模板中的app.name
代码中包含blocktrans
?
{% for app in app_list %}
{% blocktrans with app.name as name %}{{ name }}{% endblocktrans %}
{% endfor %}
据我所见,结果总是与此结果类似:
{% for app in app_list %}
{{ app.name }}
{% endfor %}
答案 0 :(得分:0)
从技术上讲,可以在其app_label
类中的模型上指定Meta
,并且可能自定义值可以使用ugettext
将其翻译为不同的语言。不过,这是一个非常奇怪的场景,并且很可能在实践中存在问题。
Django开发人员很可能仅仅为了未来的证明并覆盖边缘情况。通过blocktrans
传递内容并不会伤害。如果没有翻译,那么它只会按原样返回值,并且不假设应该或不应该翻译的内容更安全。
答案 1 :(得分:0)
发现Django国际化和本地化thread。我在这里粘贴了Django开发人员的相关答案:
我同意你的结论。 “blocktrans”标签就是这样 在这里使用不当。它本质上是一个很好的翻译标签 静态模板内容。什么它不做它看里面 它替代的变量,因此适用于翻译的地方 无论变量内容如何都有效。它显得特别 在这种情况下严重,因为块转换部分仅包括a 变量替换。