Permalink
Browse files

[1.2.X] Fixed #13568 -- Fixed the blocktrans tag to not raise a KeyEr…

…ror if the number of variables in the singular and the plural block differ. Thanks, deloide.

Backport from trunk (r13967).

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@13973 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
1 parent ebc084c commit a0cabd766f9cbbf776e3a776a9eb41265502864d @jezdez jezdez committed Oct 1, 2010
Showing with 6 additions and 1 deletion.
  1. +3 −1 django/templatetags/i18n.py
  2. +3 −0 tests/regressiontests/templates/tests.py
@@ -76,8 +76,10 @@ def render(self, context):
if self.plural and self.countervar and self.counter:
count = self.counter.resolve(context)
context[self.countervar] = count
- plural, vars = self.render_token_list(self.plural)
+ plural, plural_vars = self.render_token_list(self.plural)
result = translation.ungettext(singular, plural, count)
+ if count != 1:
+ vars = plural_vars
else:
result = translation.ugettext(singular)
# Escape all isolated '%' before substituting in the context.
@@ -1116,6 +1116,9 @@ def get_template_tests(self):
'i18n24': ("{% load i18n %}{% trans 'Page not found'|upper %}", {'LANGUAGE_CODE': 'de'}, u'SEITE NICHT GEFUNDEN'),
'i18n25': ('{% load i18n %}{% trans somevar|upper %}', {'somevar': 'Page not found', 'LANGUAGE_CODE': 'de'}, u'SEITE NICHT GEFUNDEN'),
+ # translation of plural form with extra field in singular form (#13568)
+ 'i18n26': ('{% load i18n %}{% blocktrans with myextra_field as extra_field count number as counter %}singular {{ extra_field }}{% plural %}plural{% endblocktrans %}', {'number': 1, 'myextra_field': 'test'}, "singular test"),
+
### HANDLING OF TEMPLATE_STRING_IF_INVALID ###################################
'invalidstr01': ('{{ var|default:"Foo" }}', {}, ('Foo','INVALID')),

0 comments on commit a0cabd7

Please sign in to comment.