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)