#!/usr/bin/env python
from genshi.template import MarkupTemplate
from genshi.filters.i18n import Translator

tempstring = """
<html xmlns:py="http://genshi.edgewall.org/"
      xmlns:i18n="http://genshi.edgewall.org/i18n">
    <p class="incorrect"  i18n:msg="first,second">
        $first <span>$second</span> REMOVED <span>Inside a tag</span> Outside a tag
    </p>
    <p class="correct">
        $first <span>$second</span> NOT REMOVED <span>Inside a tag</span> Outside a tag
    </p>
    <p class="correct" i18n:msg="first,second">
        $first <span>$second</span> NOT REMOVED <span>Inside a tag</span>
    </p>
    <p class="correct" i18n:msg="first,second">
        <span>$first</span> <span>$second</span> NOT REMOVED <span>Inside a tag</span> Outside a tag
    </p>
    <p class="correct" i18n:msg="first,second">
        $first <span>$second</span> NOT REMOVED
    </p>
    <p class="correct" i18n:msg="first,second">
        <span>$first</span> <span>$second</span> NOT REMOVED
    </p>
</html>"""
tmpl = MarkupTemplate(tempstring)
translator = Translator()
translator.setup(tmpl)

print "Template text:"
print tempstring

print ""
print "Extracted messages:"
for t in list(translator.extract(tmpl.stream)):
    print t

print ""
print "Generated XHTML:"
print tmpl.generate(first='FIRST',second='SECOND')

