Edgewall Software

Changeset 1092

Show
Ignore:
Timestamp:
11/28/09 16:42:49 (2 years ago)
Author:
cmlenz
Message:

Apply patch for I18n message extraction bug as reported in #358. Thanks to cboos for the patch, again.

Location:
trunk/genshi/filters
Files:
2 modified

Legend:

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

    r1079 r1092  
    187187            msgbuf.append(*previous) 
    188188            previous = event 
    189         if previous[0] is not END: 
    190             msgbuf.append(*previous) 
     189        msgbuf.append(*previous) 
    191190 
    192191        yield None, msgbuf.format(), comment_stack[-1:] 
  • trunk/genshi/filters/tests/i18n.py

    r1081 r1092  
    207207        self.assertEqual("""<html> 
    208208          <p>Für Details siehe bitte <a href="help.html">Hilfe</a>.</p> 
     209        </html>""", tmpl.generate().render()) 
     210 
     211    def test_extract_i18n_msg_nonewline(self): 
     212        tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/" 
     213            xmlns:i18n="http://genshi.edgewall.org/i18n"> 
     214          <p i18n:msg="">Please see <a href="help.html">Help</a></p> 
     215        </html>""") 
     216        translator = Translator() 
     217        tmpl.add_directives(Translator.NAMESPACE, translator) 
     218        messages = list(translator.extract(tmpl.stream)) 
     219        self.assertEqual(1, len(messages)) 
     220        self.assertEqual('Please see [1:Help]', messages[0][2]) 
     221 
     222    def test_translate_i18n_msg_nonewline(self): 
     223        tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/" 
     224            xmlns:i18n="http://genshi.edgewall.org/i18n"> 
     225          <p i18n:msg="">Please see <a href="help.html">Help</a></p> 
     226        </html>""") 
     227        gettext = lambda s: u"Für Details siehe bitte [1:Hilfe]" 
     228        translator = Translator(gettext) 
     229        translator.setup(tmpl) 
     230        self.assertEqual("""<html> 
     231          <p>Für Details siehe bitte <a href="help.html">Hilfe</a></p> 
     232        </html>""", tmpl.generate().render()) 
     233 
     234    def test_extract_i18n_msg_elt_nonewline(self): 
     235        tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/" 
     236            xmlns:i18n="http://genshi.edgewall.org/i18n"> 
     237          <i18n:msg>Please see <a href="help.html">Help</a></i18n:msg> 
     238        </html>""") 
     239        translator = Translator() 
     240        tmpl.add_directives(Translator.NAMESPACE, translator) 
     241        messages = list(translator.extract(tmpl.stream)) 
     242        self.assertEqual(1, len(messages)) 
     243        self.assertEqual('Please see [1:Help]', messages[0][2]) 
     244 
     245    def test_translate_i18n_msg_elt_nonewline(self): 
     246        tmpl = MarkupTemplate("""<html xmlns:py="http://genshi.edgewall.org/" 
     247            xmlns:i18n="http://genshi.edgewall.org/i18n"> 
     248          <i18n:msg>Please see <a href="help.html">Help</a></i18n:msg> 
     249        </html>""") 
     250        gettext = lambda s: u"Für Details siehe bitte [1:Hilfe]" 
     251        translator = Translator(gettext) 
     252        translator.setup(tmpl) 
     253        self.assertEqual("""<html> 
     254          Für Details siehe bitte <a href="help.html">Hilfe</a> 
    209255        </html>""", tmpl.generate().render()) 
    210256