From 11713a8771221767f31718ef6406d276b435b9b0 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Sat, 16 Oct 2010 20:51:06 +0000 Subject: [PATCH] [1.2.X] Fixed #14126 -- Fixed an issue with changes to the blocktrans tag introduced in r13973 related to multiple plural forms. Thanks, mark0978, svetlyak40wt and Ramiro. Backport from trunk (r14239). git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@14240 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/templatetags/i18n.py | 3 +-- tests/regressiontests/templates/tests.py | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/django/templatetags/i18n.py b/django/templatetags/i18n.py index c4dd2e7835..c0e360b751 100644 --- a/django/templatetags/i18n.py +++ b/django/templatetags/i18n.py @@ -78,8 +78,7 @@ class BlockTranslateNode(Node): context[self.countervar] = count plural, plural_vars = self.render_token_list(self.plural) result = translation.ungettext(singular, plural, count) - if count != 1: - vars = plural_vars + vars.extend(plural_vars) else: result = translation.ugettext(singular) # Escape all isolated '%' before substituting in the context. diff --git a/tests/regressiontests/templates/tests.py b/tests/regressiontests/templates/tests.py index 9e2d175677..cea42224dd 100644 --- a/tests/regressiontests/templates/tests.py +++ b/tests/regressiontests/templates/tests.py @@ -1119,6 +1119,9 @@ class Templates(unittest.TestCase): # 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"), + # translation of singular form in russian (#14126) + 'i18n27': ('{% load i18n %}{% blocktrans count number as counter %}1 result{% plural %}{{ counter }} results{% endblocktrans %}', {'number': 1, 'LANGUAGE_CODE': 'ru'}, u'1 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442'), + ### HANDLING OF TEMPLATE_STRING_IF_INVALID ################################### 'invalidstr01': ('{{ var|default:"Foo" }}', {}, ('Foo','INVALID')),