DEBCONF-GETTEXTIZE(1) | po-debconf | DEBCONF-GETTEXTIZE(1) |
debconf-gettextize - extract translations of debconf templates into PO files
debconf-gettextize [-v] [-h] [--podir=DIR] [--choices] [--merge] master [master ...]
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.
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:
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.
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".
debconf-updatepo(1), po2debconf(1), debconf-devel(7), po-debconf(7).
Denis Barbier <barbier@linuxfr.org> Martin Quinson <martin.quinson@ens-lyon.fr>
2020-12-30 |