Edgewall Software

Changeset 1242


Ignore:
Timestamp:
Jan 9, 2014, 10:23:41 PM (10 years ago)
Author:
hodgestar
Message:

Fix handling of case where a translation has text after a closing tag (fixes #566, thanks to jomae for the patch).

Location:
trunk/genshi/filters
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/genshi/filters/i18n.py

    r1177 r1242  
    10491049        while parts:
    10501050            order, string = parts.pop(0)
    1051             events = self.events[order].pop(0)
     1051            events = self.events[order]
     1052            if events:
     1053                events = events.pop(0)
     1054            else:
     1055                # create a dummy empty text event so any remaining
     1056                # part of the translation can be processed.
     1057                events = [(TEXT, "", (None, -1, -1))]
    10521058            parts_counter[order].pop()
    10531059
  • trunk/genshi/filters/tests/i18n.py

    r1177 r1242  
    928928          """</p></html>""",
    929929          tmpl.generate(first="FIRST", second="SECOND").render())
     930
     931    def test_translate_i18n_msg_ticket_404_regression(self):
     932        tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/"
     933            xmlns:i18n="http://genshi.edgewall.org/i18n">
     934          <h1 i18n:msg="name">text <a>$name</a></h1>
     935        </html>""")
     936        gettext = lambda s: u'head [1:%(name)s] tail'
     937        translator = Translator(gettext)
     938        translator.setup(tmpl)
     939        self.assertEqual("""<html>
     940          <h1>head <a>NAME</a> tail</h1>
     941        </html>""", tmpl.generate(name='NAME').render())
    930942
    931943
Note: See TracChangeset for help on using the changeset viewer.