summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/templatetags/i18n.py2
-rw-r--r--tests/regressiontests/templates/tests.py3
2 files changed, 4 insertions, 1 deletions
diff --git a/django/templatetags/i18n.py b/django/templatetags/i18n.py
index c0e360b751..3189fce001 100644
--- a/django/templatetags/i18n.py
+++ b/django/templatetags/i18n.py
@@ -83,7 +83,7 @@ class BlockTranslateNode(Node):
result = translation.ugettext(singular)
# Escape all isolated '%' before substituting in the context.
result = re.sub(u'%(?!\()', u'%%', result)
- data = dict([(v, _render_value_in_context(context[v], context)) for v in vars])
+ data = dict([(v, _render_value_in_context(context.get(v, ''), context)) for v in vars])
context.pop()
return result % data
diff --git a/tests/regressiontests/templates/tests.py b/tests/regressiontests/templates/tests.py
index 7a3de22f57..ba1a5809f2 100644
--- a/tests/regressiontests/templates/tests.py
+++ b/tests/regressiontests/templates/tests.py
@@ -1138,6 +1138,9 @@ class Templates(unittest.TestCase):
# 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'),
+ # blocktrans handling of variables which are not in the context.
+ 'i18n34': ('{% load i18n %}{% blocktrans %}{{ missing }}{% endblocktrans %}', {}, u''),
+
### HANDLING OF TEMPLATE_STRING_IF_INVALID ###################################
'invalidstr01': ('{{ var|default:"Foo" }}', {}, ('Foo','INVALID')),