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