debconf-gettextize
extract translations of debconf templates into PO files
see also :
debconf-updatepo - po2debconf
Synopsis
debconf-gettextize
[-v] [-h]
[--podir=
DIR ]
[--choices] [--merge]
master [master ...]
add an example, a script, a trick and tips
examples
no example yet ...
... Feel free to add your own example above to help other Linux-lovers !
description
The
/var/lib/dpkg/info/*.templates files read by debconf
contain English text and translations in the same file. But
in source packages, translations are managed in separate
files to help translators. In the initial implementation, a
master templates file contained only English text,
and templates.xx files contained both original and
translated strings for the language xx. The
debconf-mergetemplate program was merging master and
translated templates files.
The new
implementation with "po-debconf" is
based on "gettext". Maintainers mark
translatable fields by prepending them with an underscore,
English strings are automatically extracted into a
POT file, translators work on normal
PO files, and po2debconf generates a
merged templates file with the same structure.
The
debconf-gettextize program was initially designed to
help migrating to the new implementation.
•
It reads a list of master files and their associated
translations, and generates po/*.po files for each
language containing translated strings.
•
Each input file receives an ".old"
suffix, and a new master file overwrites the old one; it is
identical to the previous master file except that an
underscore is prepended to translatable fields. Developers
can then choose which fields translators have to work on and
which ones are skipped because their values are not
locale-dependent.
•
A po/POTFILES.in file is also created, it
contains the list of templates files
debconf-updatepo has to process.
Typically the
debconf-gettextize program must be run only once when
transforming from the first implementation to the
"po-debconf" format, but it can
also be used afterwards to transform a
"_Choices" field into
"__Choices" (or vice-versa) without
losing translations, when using the
"--merge" flag (alongside
with "--choices" or not). The
desired template containing the
"_Choices" or
"__Choices" fields to modify has to be
copied into a temporary template file, which is passed to
debconf-gettextize as an argument. Then the following
steps are performed:
1.
po2debconf is run on this
template file to generate a translated templates file.
2.
This translated templates file is processed as described
above and PO files are generated.
3.
Newly created PO files are merged with
existing ones.
When
PO files are merged,
"_Choices" fields have to be replaced by
"__Choices" (or vice-versa) in the
original templates file before running
debconf-updatepo, otherwise new translations will be
fuzzy.
options
-h,
--help
Display a usage summary for the
program and exit.
-v,
--verbose
Process in verbose mode.
--podir=
DIR
Set directory for
PO files. Default is to search for
PO files in the po subdirectory below
the location of the first master file.
--choices
By default,
debconf-gettextize replaces
"Choices" fields by
"_Choices". With this flag,
"__Choices" fields are written
instead.
--merge
When this flag is set, the
strings are merged with existing PO files.
The templates files and po/POTFILES.in are not
modified.
caveats
The "Default" field is special when template type is
"Select" or "Multiselect", because a value has
to be chosen amongst the English list of choices, even for
localized values. Normally this field must not be changed, but in
rare circumstances localized values are meaningful (e.g. to
choose the default language of an application). In order to let
translators know that this localized "Default" field is
special, you must by convention call it "_DefaultChoice"
instead of "_Default".
see also
debconf-updatepo ,
po2debconf , debconf-devel,
po-debconf.
authors
Denis Barbier <barbier[:at:]linuxfr[:dot:]org>
Martin Quinson <martin.quinson@ens-lyon.fr>