# HG changeset patch # User cmlenz # Date 1259422969 0 # Node ID 38c44e2f4232dcfaf71f3dac260e8ec0493977ea # Parent 9309530ee279e286f3cf923ef2534a19898a6282 Apply patch for I18n message extraction bug as reported in #358. Thanks to cboos for the patch, again. diff --git a/genshi/filters/i18n.py b/genshi/filters/i18n.py --- a/genshi/filters/i18n.py +++ b/genshi/filters/i18n.py @@ -186,8 +186,7 @@ for event in stream: msgbuf.append(*previous) previous = event - if previous[0] is not END: - msgbuf.append(*previous) + msgbuf.append(*previous) yield None, msgbuf.format(), comment_stack[-1:] diff --git a/genshi/filters/tests/i18n.py b/genshi/filters/tests/i18n.py --- a/genshi/filters/tests/i18n.py +++ b/genshi/filters/tests/i18n.py @@ -208,6 +208,52 @@

Für Details siehe bitte Hilfe.

""", tmpl.generate().render()) + def test_extract_i18n_msg_nonewline(self): + tmpl = MarkupTemplate(""" +

Please see Help

+ """) + translator = Translator() + tmpl.add_directives(Translator.NAMESPACE, translator) + messages = list(translator.extract(tmpl.stream)) + self.assertEqual(1, len(messages)) + self.assertEqual('Please see [1:Help]', messages[0][2]) + + def test_translate_i18n_msg_nonewline(self): + tmpl = MarkupTemplate(""" +

Please see Help

+ """) + gettext = lambda s: u"Für Details siehe bitte [1:Hilfe]" + translator = Translator(gettext) + translator.setup(tmpl) + self.assertEqual(""" +

Für Details siehe bitte Hilfe

+ """, tmpl.generate().render()) + + def test_extract_i18n_msg_elt_nonewline(self): + tmpl = MarkupTemplate(""" + Please see Help + """) + translator = Translator() + tmpl.add_directives(Translator.NAMESPACE, translator) + messages = list(translator.extract(tmpl.stream)) + self.assertEqual(1, len(messages)) + self.assertEqual('Please see [1:Help]', messages[0][2]) + + def test_translate_i18n_msg_elt_nonewline(self): + tmpl = MarkupTemplate(""" + Please see Help + """) + gettext = lambda s: u"Für Details siehe bitte [1:Hilfe]" + translator = Translator(gettext) + translator.setup(tmpl) + self.assertEqual(""" + Für Details siehe bitte Hilfe + """, tmpl.generate().render()) + def test_extract_i18n_msg_nested(self): tmpl = MarkupTemplate("""