Kaydet (Commit) 1b7780ea authored tarafından Claude Paroz's avatar Claude Paroz

Fixed #28544 -- Made unlocalize template filter behave like {% localize off %} tag

Thanks Beda Kosata for the report and Tim Graham for the review.
üst 327f0f37
...@@ -19,7 +19,7 @@ def unlocalize(value): ...@@ -19,7 +19,7 @@ def unlocalize(value):
Force a value to be rendered as a non-localized value, Force a value to be rendered as a non-localized value,
regardless of the value of ``settings.USE_L10N``. regardless of the value of ``settings.USE_L10N``.
""" """
return str(value) return str(formats.localize(value, use_l10n=False))
class LocalizeNode(Node): class LocalizeNode(Node):
......
...@@ -1017,20 +1017,30 @@ class FormattingTests(SimpleTestCase): ...@@ -1017,20 +1017,30 @@ class FormattingTests(SimpleTestCase):
def test_localize_templatetag_and_filter(self): def test_localize_templatetag_and_filter(self):
""" """
Tests the {% localize %} templatetag Test the {% localize %} templatetag and the localize/unlocalize filters.
""" """
context = Context({'value': 3.14}) context = Context({'float': 3.14, 'date': datetime.date(2016, 12, 31)})
template1 = Template( template1 = Template(
'{% load l10n %}{% localize %}{{ value }}{% endlocalize %};' '{% load l10n %}{% localize %}{{ float }}/{{ date }}{% endlocalize %}; '
'{% localize on %}{{ value }}{% endlocalize %}' '{% localize on %}{{ float }}/{{ date }}{% endlocalize %}'
) )
template2 = Template("{% load l10n %}{{ value }};{% localize off %}{{ value }};{% endlocalize %}{{ value }}") template2 = Template(
template3 = Template('{% load l10n %}{{ value }};{{ value|unlocalize }}') '{% load l10n %}{{ float }}/{{ date }}; '
template4 = Template('{% load l10n %}{{ value }};{{ value|localize }}') '{% localize off %}{{ float }}/{{ date }};{% endlocalize %} '
output1 = '3,14;3,14' '{{ float }}/{{ date }}'
output2 = '3,14;3.14;3,14' )
output3 = '3,14;3.14' template3 = Template(
output4 = '3.14;3,14' '{% load l10n %}{{ float }}/{{ date }}; {{ float|unlocalize }}/{{ date|unlocalize }}'
)
template4 = Template(
'{% load l10n %}{{ float }}/{{ date }}; {{ float|localize }}/{{ date|localize }}'
)
expected_localized = '3,14/31. Dezember 2016'
expected_unlocalized = '3.14/Dez. 31, 2016'
output1 = '; '.join([expected_localized, expected_localized])
output2 = '; '.join([expected_localized, expected_unlocalized, expected_localized])
output3 = '; '.join([expected_localized, expected_unlocalized])
output4 = '; '.join([expected_unlocalized, expected_localized])
with translation.override('de', deactivate=True): with translation.override('de', deactivate=True):
with self.settings(USE_L10N=False): with self.settings(USE_L10N=False):
self.assertEqual(template1.render(context), output1) self.assertEqual(template1.render(context), output1)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment