В шаблонах Django вы можете использовать {{ _("Hello World") }}
или {% trans "Hello World" %}
для обозначения строк, которые нужно перевести. В документах "официальный" подход выглядит как {% trans %}
, но синтаксис _()
также упоминается один раз.
Как эти подходы отличаются (кроме синтаксиса) и почему это должно быть предпочтительным, а не другим?
Одно отличие состоит в том, что вы, очевидно, не можете использовать {% trans %}
с тегами и фильтрами. Но означает ли это, что я могу просто использовать _()
везде, например {{ _("String") }}
? Он работает и выглядит намного чище и последовательнее, чем при использовании {% trans "String" %}
с автономными строками и _()
с тегами и фильтрами.