User Commands XML2PO(1)
NAME
xml2po - program to create a PO-template file from a DocBook
XML file and merge it back into a (translated) XML file
SYNOPSIS
xml2po [OPTIONS] [XMLFILE]
DESCRIPTION
This manual page documents briefly the xml2po command.
xml2po is a simple Python program which extracts
translatable content from free-form XML documents and
outputs gettext compatible POT files. Translated PO files
can be turned into XML output again.
It can work it's magic with most "simple" tags, and for
complicated tags one has to provide a list of all tags which
are "final" (that will be put into one "message" in PO
file), "ignored" (skipped over) and "space preserving".
OPTIONS
The program follows the usual GNU command line syntax, with
long options starting with two dashes (`-'). A summary of
options is included below.
-a, --automatic-tags
Automatically decides if tags are to be considered
"final" or not.
-k, --keep-entities
Don't expand entities (default). See also the -e option.
-e, --expand-all-entities
Expand all entities (including SYSTEM ones).
-m, --mode=TYPE
Treat tags as type TYPE (default: docbook).
-o, --output=FILE
Print resulting text (XML while merging translations
with "-p" or "-t" options, POT template file while
extracting strings, and translated PO file with "-r"
option) to the given FILE.
-p, --po-file=FILE
Specify a PO FILE containing translation and output XML
document with translations merged in. Using this option
will overwrite the temporary file
-r, --reuse=FILE
Specify a translated XML document in FILE with the same
structure to generate translated PO file for XML
SunOS 5.10 Last change: 2005/02/10 1
User Commands XML2PO(1)
document given on command line.
-t, --translation=FILE
Specify a MO file containing translation and output XML
document with translations merged in.
-u, --update-translation=LANG.po
Updates a PO file using msgmerge.
-l, --language=LANG
Explicitely set language of the translation.
-h, --help
Show summary of options.
-v, --version
Show version of program.
EXAMPLES
Creating POT template files
To create a POT template book.pot from an input file
book.xml, which consists of chapter1.xml and chapter2.xml
(external entities), run:
/usr/bin/xml2po -o book.pot book.xml chapter1.xml chapter2.xml
To expand entities use the -e option:
/usr/bin/xml2po -e -o book.pot book.xml
Creating translated XML files (merging back PO files)
After translating book.pot into LANG.po, merge the
translations back by using -p option for each XML file:
/usr/bin/xml2po -p LANG.po -o book.LANG.xml book.xml
/usr/bin/xml2po -p LANG.po -o chapter1.LANG.xml chapter1.xml
/usr/bin/xml2po -p LANG.po -o chapter2.LANG.xml chapter2.xml
If you used the -e option to expand entities, you should use
it again to merge back the translation into an XML file:
/usr/bin/xml2po -e -p LANG.po -o book.LANG.xml book.xml
Updating PO files
When base XML file changes, the real advantages of PO files
come to surface. There are 2 ways to merge the translation.
The first is to produce a new POT template file
(additionally use the -e if you decided earlier to expand
SunOS 5.10 Last change: 2005/02/10 2
User Commands XML2PO(1)
entities). Afterwards run msgmerge to merge the translation
with the new POT file:
/usr/bin/msgmerge -o tmp.po LANG.po book.pot
Now rename tmp.po to LANG.po and update your translation.
Alternatively, xml2po provides the -u option, which does
exactly these two steps for you. The advantage is, that it
also runs msgfmt to give you a statistical output of
translation status (count of translated, untranslated and
fuzzy messages). Additionally use the -e if you decided
earlier to expand entities:
/usr/bin/xml2po -u LANG.po book.xml
SEE ALSO
msgmerge (1), msgfmt (1)
AUTHOR
This manual page was written by Daniel Leidert
for the Debian system (but may be
used by others). Permission is granted to copy, distribute
and/or modify this document under the terms of the GNU
General Public License, Version 2 any later version
published by the Free Software Foundation.
COPYRIGHT
Copyright O 2005 Daniel Leidert
SunOS 5.10 Last change: 2005/02/10 3
|