Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/django/templatetags/l10n.py: 38%
33 statements
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
1from django.template import Library, Node, TemplateSyntaxError
2from django.utils import formats
4register = Library()
7@register.filter(is_safe=False)
8def localize(value):
9 """
10 Force a value to be rendered as a localized value,
11 regardless of the value of ``settings.USE_L10N``.
12 """
13 return str(formats.localize(value, use_l10n=True))
16@register.filter(is_safe=False)
17def unlocalize(value):
18 """
19 Force a value to be rendered as a non-localized value,
20 regardless of the value of ``settings.USE_L10N``.
21 """
22 return str(formats.localize(value, use_l10n=False))
25class LocalizeNode(Node):
26 def __init__(self, nodelist, use_l10n):
27 self.nodelist = nodelist
28 self.use_l10n = use_l10n
30 def __repr__(self):
31 return "<%s>" % self.__class__.__name__
33 def render(self, context):
34 old_setting = context.use_l10n
35 context.use_l10n = self.use_l10n
36 output = self.nodelist.render(context)
37 context.use_l10n = old_setting
38 return output
41@register.tag("localize")
42def localize_tag(parser, token):
43 """
44 Force or prevents localization of values, regardless of the value of
45 `settings.USE_L10N`.
47 Sample usage::
49 {% localize off %}
50 var pi = {{ 3.1415 }};
51 {% endlocalize %}
52 """
53 use_l10n = None
54 bits = list(token.split_contents())
55 if len(bits) == 1:
56 use_l10n = True
57 elif len(bits) > 2 or bits[1] not in ("on", "off"):
58 raise TemplateSyntaxError("%r argument should be 'on' or 'off'" % bits[0])
59 else:
60 use_l10n = bits[1] == "on"
61 nodelist = parser.parse(("endlocalize",))
62 parser.delete_first_token()
63 return LocalizeNode(nodelist, use_l10n)