_() или {% trans %} в шаблонах Django?

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

Чем отличаются эти подходы (за исключением синтаксиса) и почему один из них должен быть предпочтительнее другого?

Разница в том, что вы, очевидно, не можете использовать {% trans %} с тегами и фильтрами. Но означает ли это, что я могу просто использовать _() везде, как {{ _((("Строка") }}? Это работает и выглядит намного чище и последовательнее, чем использование {% trans "String" %} с отдельными строками и _() с тегами и фильтрами.

43
задан Anton Strogonoff 6 October 2016 в 13:15
поделиться