Text in the right margin determines the milestone for the feature (R1
means release 1, i.e. version 1.1).

TODO:

 o check for compatible msgfmt and msgmerge                               [R1]
   (I'm just lazy, and these are not necessary if you don't use 
   options -p and -u)

 o add option "--dtd" to use doctype additions from another XML file	  [R1]
   (for Mate Users Guide)

 o write extensive test suite                                             [R1]
   this is a must before release, so we've got invariant to compare to

 o support for redefining DTD or parts of it [Karl]

 o allow tags in messages to be replaced with placeholders                [R1]
   (such as <a href="...">blah</a> being replaced with 
   <placeholder1>blah</placeholder1>)
   [Francesco Levorato <flevour@flevour.net>]

 o make "-p POFILE" and "-u POFILE" work directly on PO file, instead     [R1]
   of depending on msgfmt/msgmerge

 o pipe the constructed .po file thru 'msgcat'; msgcat is meant as a .po
   file normalization tool. [Karl]

 o support several different doctypes in the same run                     [??]
   eg. a mathml, docbook, documents all translated with one run

 o Improve speed: with addition of many features, speed has gone 
   dramatically down; some of the things should be transferred to 
   libxml2 (like using node.isText()).


DONE:

 o [2006-12-26] add support for translating attributes (eg. imagine "title"
   attribute in IMG tag in XHTML) -- this should be easy enough

 o [BUG FIXED with at least libxml2 2.6.21] 
   Merging with "-k" (keep-entities) option doesn't work correctly 

 o add "-a" option to automatically detect final tags (should be
   simple, use something like worthOutputting in isFinalTag)

 o fix normalizeString not to assume that inserting spaces is ok
   [This should be good enough now]

 o allow nesting of tags in final-tags which are then replaced by
   something like "<tag id='blah'>"

 o source code references are working now

 o Implement -o option for directing output into file.

 o Recognize comments before tags as translators' comments.

 o Add option "-p POFILE" which will run msgfmt for user automatically.

 o Add option "-u LANG" which works like "intltool-update LANG"
   (runs msgmerge for the user and works on file LANG.po)

 o Entities which contain tags are not handled correctly, this can be 
   easily solved using ctxt.replaceEntities(1) -- that's how it was done

 o Ignore external entities (first need to look if it's at all possible)
   This seems be impossible with Python bindings, C interface provides
   xmlEntity.etype field (enum xmlEntityType), but this doesn't seem to 
   be available from Python bindings.  Because of this, I hacked
   around it using xmlNode.debugDumpNode to a temporary file, what
   could sure use some improvement.

 o correct startTagForNode(node) to generate correct XML (watch out on
   quoting, entities, etc.)  [this seems to automagically just work,
   further testing might be required]

 o When outputting messages to PO file, we need to escape "\" as well.

 o allow tags which preserve spaces (1.0.6)

 o add ability to merge translator-credits back into XML file (1.0.6)
   - this is done per document type using Python code

 o add support for setting current language as either attribute of (1.0.6)
   some element, as another child element of existing element
   (eg. DocBook articles use "<article lang='lang'>", where lang is
   basename of the PO file without ".po" (for sr.po, it's simply "sr").
   - this is done per document type using Python code

 o install xml2po in $prefix, data in $prefix/share, and document (1.0.6)
   descriptions in $prefix/share/xml2po/docbook/*, 
   $prefix/share/xml2po/summary/*, etc.

 o make "descriptions" of document types which contain lists of final (1.0.6)
   tags, ignored tags, attributes to be translated, etc. install them
   in $prefix/share/xml2po/ (this will deprecate options -i and -f).

 o support images and other objects which might need updating
   basically, just extract a message of the form:  (1.0.9)
    @@imageobject: figure/gui.png; md5=...@@

 o allow reusing existing translations in XML files (we need to have 
   both translated XML and original XML file with same structure) (1.0.10)

 o add "#. tag: title" for <title> tags [Karl]
   actually, now references are #. file:lineno(tag) (1.0.11)

