在Django模板中,这两者到底有什么区别:

{% blocktrans %}My Text{% endblocktrans %}

{% trans 'My Text' %}

最佳答案

来自 Django Docs

Trans 模板标签



使用 Trans 标签,您只能使用单个常量字符串或变量。所以你必须使用

{# These Would Work! #}
title>{% trans "This is the title." %}</title>
<title>{% trans myvar %}</title>

但是不能用
{%trans "This is my title {{ myvar }}" %}

Blocktrans 模板标签



使用 Blocktrans,这种代码是可能的:
    {% blocktrans with book_t=book|title author_t=author|title %}
       This is {{ book_t }} by {{ author_t }}
    {% endblocktrans %}

因此,Blocktrans 将允许您在输出中变得更加复杂和完整。

但是从字面上回答你的问题:不多。除了呈现风格,两者都将作为字符串 'My Text' 发送给翻译器

关于Django i18n blocktrans vs trans,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17621770/

10-13 03:04