title: _() or {% trans %} in Django templates?
body: <p>In Django templates, you can use either <code>{{ _("Hello World") }}</code> or <code>{% trans "Hello World" %}</code> to mark strings to be translated. In docs, the “official” approach seems to be the <a href="https://docs.djangoproject.com/en/1.8/topics/i18n/translation/#trans-template-tag" rel="noreferrer"><code>{% trans %}</code></a> tag, but the <code>_()</code> syntax is mentioned too <a href="https://docs.djangoproject.com/en/1.8/topics/i18n/translation/#string-literals-passed-to-tags-and-filters" rel="noreferrer">once</a>.</p>
  
  <p><strong>How these approaches differ</strong> (except syntax) and why should be one preferable rather than the other?</p>
  
  <p>One difference is that you obviously can't use <code>{% trans %}</code> with tags and filters. But does that mean that I can just use <code>_()</code> everywhere, like <code>{{ _("String") }}</code>? It works and looks much cleaner and more consistent than using <code>{% trans "String" %}</code> with standalone strings and <code>_()</code> with tags and filters.</p>