Hi all
Django 1.3's blocktrans tag is documented as still supporting 1.2's
more verbose syntax. However, if you attempt a plural translation, it
barfs. More importantly, it rejects a format that 1.2 accepts, and
accepts a format that 1.2 rejects.
This format is rejected by 1.2 and accepted by 1.3:
tmpl2 = """
{% load i18n %}
{% blocktrans with items as stuff and count items|length|add:"-3" as
more_count %}
{{ more_count }} more
{% plural %}
{{ more_count }} more
{% endblocktrans %}
"""
This format is accepted by 1.2 and rejected by 1.3:
tmpl3 = """
{% load i18n %}
{% blocktrans count items|length|add:"-3" as more_count and items as stuff %}
{{ more_count }} more
{% plural %}
{{ more_count }} more
{% endblocktrans %}
"""
The 1.3 documentation states that "The previous more verbose format is
still supported", without going into details of what that format is.
This probably requires either a fix to be more 1.2 compatible, or a
documentation note in 1.3 noting the differences in formats that it
will parse and an update to the 1.3 backwards incompatibilities
noting this difference.
Cheers
Tom
Full transcripts below:
>>> from django.template import Template, Context, TemplateSyntaxError
>>> import django
>>> django.VERSION
(1, 2, 7, 'final', 0)
>>> try:
... Template(tmpl2).render(Context({'items':[1,2,3,4,5,6]}))
... except TemplateSyntaxError, e:
... print e
...
variable bindings in 'blocktrans' must be 'with value as variable'
>>> try:
... Template(tmpl3).render(Context({'items':[1,2,3,4,5,6]}))
... except TemplateSyntaxError, e:
... print e
...
u'\n\n\n3 more\n\n'
>>> from django.template import Template, Context, TemplateSyntaxError
>>> import django
>>> django.VERSION
(1, 3, 1, 'final', 0)
>>> try:
... Template(tmpl2).render(Context({'items':[1,2,3,4,5,6]}))
... except TemplateSyntaxError, e:
... print e
...
u'\n\n\n3 more\n\n'
>>> try:
... Template(tmpl3).render(Context({'items':[1,2,3,4,5,6]}))
... except TemplateSyntaxError, e:
... print e
...
"count" in u'blocktrans' tag expected exactly one keyword argument.
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.