ITSTOOL(1) General Commands Manual ITSTOOL(1)NAME
itstool - convert between XML and PO using ITS
itstool [OPTIONS] [XMLFILES]
itstool -m <MOFILE> [OPTIONS] [XMLFILES]
itstool extracts messages from XML files and outputs PO template files, then merges translations from MO files to create translated XML
files. It determines what to translate and how to chunk it into messages using the W3C Internationalization Tag Set (ITS).
To extract messages from XML files FILES and output them to OUT.pot:
itstool -o OUT.pot FILES
After merging with existing translations or translating strings, generate an MO file with msgfmt(1), then output translated files to the
itstool -m OUT.mo -o DIR FILES
ITS definitions are loaded from the built-in rules, rules embedded in the source XML files, files passed with the -i option, and ITS
attributes in the source XML files. Later definitions take precedence.
output PO template to the file OUT
merge from an MO file FILE and output XML files
explicitly set the language code output to XML
output XML files in the directory OUT
load the ITS rules in the file ITS (can specify multiple times)
Shaun McCance <email@example.com>
More documentation for itstool is maintained online. For more information, see:
itstool 1.1.3 May 2011 ITSTOOL(1)
Check Out this Related Man Page
XML2PO(1) [FIXME: manual] 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
xml2po [OPTIONS] [XMLFILE]
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".
The program follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included
Automatically decide if tags are to be considered "final" or not.
Don't expand entities (default). See also the -e option.
Expand all entities (including SYSTEM ones).
Treat tags as type TYPE (default: docbook).
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.
Specify a PO FILE containing translation and output XML document with translations merged in.
Specify a translated XML document in FILE with the same structure to generate translated PO file for XML document given on command
Specify a MO file containing translation and output XML document with translations merged in.
Update a PO file using msgmerge.
Explicitly set language of the translation.
Show summary of options.
Show version of program.
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 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
msgmerge (1), msgfmt (1)
This manual page was written by Daniel Leidert firstname.lastname@example.org 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 (C) 2005 Daniel Leidert
[FIXME: source] 2005/02/10 XML2PO(1)