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 Gnome 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 blah being replaced with blah) [Francesco Levorato ] 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 "" 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 "
", 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 tags [Karl] actually, now references are #. file:lineno(tag) (1.0.11)