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