Code: Alles auswählen
{% for user in users %}
{% trans %}
{{ user.name }} is {{ user.age }} years old.
{% endtrans %}
{% endfor %}
{% trans "A small string with %d chars.", myvar %}
Code: Alles auswählen
{% for user in users %}
{{ user.name }} is {{ user.age }} years old.
{% endfor %}
A small string with {{ myvar }} chars."
Warum ist das so?
Man möchte den Textanteil im Template in möglichst logischen Blöcken "extrahieren" um diesen in die .po Datei zu packen...
Ich frage mich allerdings, ob es nicht evtl. auch ohne die zusätzlichen {% trans %} Markierungen gehen kann

Meine Idee...
Man müsste sich also Überlegen, wie man auch ohne Markierung die Texte in möglichst logischen Zusammenhang heraus lösen kann... Am einfachsten würde das wohl bei HTML Templates funktionieren. Dort kann man sich zum einen an den Block-Elementen orientieren. Außerdem könnte man alle Schleifen-Abschnitte zur Unterteilung benutzten...
Bei Text-Templates, wie das obrige müßte man das Template einfach in Abschnitte einteilen. Quasi als eine Art Markup verarbeiten. Demnach würde man den Text innerhalb der for-Schleife ausscheiden und danach ist nur ein Absatz, der zusammen behandelt wird.
Zu welchen Problemen es bei komplizierten Templates kommen wird, weiß ich nicht... Probleme wird es natürlich bei plural geben. z.B.:
Code: Alles auswählen
{% for user in users %}
{% trans pluralizing user.mails %}
The user {{ user.name }} has only one mail address: {{ user.mail }}
{% plural %}
The user {{ user.name }} has {{ user.mails|count }} mail addresses.
{% endtrans %}
{% endfor %}
Hatte ich mir gestern vor dem einschlafen überlegt... Was haltet ihr davon?