mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #24257 -- Corrected i18n handling of percent signs.
Refactored tests to use a sample project.
Updated extraction:
* Removed special handling of single percent signs.
* When extracting messages from template text, doubled all percent signs
so they are not interpreted by gettext as string format flags. All
strings extracted by gettext, if containing a percent sign, will now
be labeled "#, python-format".
Updated translation:
* Used "%%" for "%" in template text before calling gettext.
* Updated {% trans %} rendering to restore "%" from "%%".
This commit is contained in:
@@ -323,3 +323,12 @@ class BasicSyntaxTests(SimpleTestCase):
|
||||
msg = "Unclosed tag 'if'. Looking for one of: elif, else, endif."
|
||||
with self.assertRaisesMessage(TemplateSyntaxError, msg):
|
||||
self.engine.render_to_string('template')
|
||||
|
||||
@setup({'tpl-str': '%s', 'tpl-percent': '%%', 'tpl-weird-percent': '% %s'})
|
||||
def test_ignores_strings_that_look_like_format_interpolation(self):
|
||||
output = self.engine.render_to_string('tpl-str')
|
||||
self.assertEqual(output, '%s')
|
||||
output = self.engine.render_to_string('tpl-percent')
|
||||
self.assertEqual(output, '%%')
|
||||
output = self.engine.render_to_string('tpl-weird-percent')
|
||||
self.assertEqual(output, '% %s')
|
||||
|
||||
Reference in New Issue
Block a user