Mercurial > genshi > mirror
changeset 869:013623773357 trunk
Apply patch for I18n message extraction bug as reported in #358. Thanks to cboos for the patch, again.
author | cmlenz |
---|---|
date | Sat, 28 Nov 2009 15:42:49 +0000 |
parents | eb80cbd8e4fe |
children | c52e2bf11edc |
files | genshi/filters/i18n.py genshi/filters/tests/i18n.py |
diffstat | 2 files changed, 47 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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:]
--- a/genshi/filters/tests/i18n.py +++ b/genshi/filters/tests/i18n.py @@ -208,6 +208,52 @@ <p>Für Details siehe bitte <a href="help.html">Hilfe</a>.</p> </html>""", tmpl.generate().render()) + def test_extract_i18n_msg_nonewline(self): + tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/" + xmlns:i18n="http://genshi.edgewall.org/i18n"> + <p i18n:msg="">Please see <a href="help.html">Help</a></p> + </html>""") + 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("""<html xmlns:py="http://genshi.edgewall.org/" + xmlns:i18n="http://genshi.edgewall.org/i18n"> + <p i18n:msg="">Please see <a href="help.html">Help</a></p> + </html>""") + gettext = lambda s: u"Für Details siehe bitte [1:Hilfe]" + translator = Translator(gettext) + translator.setup(tmpl) + self.assertEqual("""<html> + <p>Für Details siehe bitte <a href="help.html">Hilfe</a></p> + </html>""", tmpl.generate().render()) + + def test_extract_i18n_msg_elt_nonewline(self): + tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/" + xmlns:i18n="http://genshi.edgewall.org/i18n"> + <i18n:msg>Please see <a href="help.html">Help</a></i18n:msg> + </html>""") + 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("""<html xmlns:py="http://genshi.edgewall.org/" + xmlns:i18n="http://genshi.edgewall.org/i18n"> + <i18n:msg>Please see <a href="help.html">Help</a></i18n:msg> + </html>""") + gettext = lambda s: u"Für Details siehe bitte [1:Hilfe]" + translator = Translator(gettext) + translator.setup(tmpl) + self.assertEqual("""<html> + Für Details siehe bitte <a href="help.html">Hilfe</a> + </html>""", tmpl.generate().render()) + def test_extract_i18n_msg_nested(self): tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/" xmlns:i18n="http://genshi.edgewall.org/i18n">