2.5.  Handling modifications to templates

2.5.1. Regular modifications

When maintainers modify the strings in the templates files, the translations will generally need updates. The only exception are typo or spelling corrections, which will be here called "trivial" modifications.

Trivial modifications can be handled with a special process to avoid updates to the translations. This is detailed in the next section.

For regular modifications, maintainers do not need to run the debconf-updatepo utility which updates the debian/po/templates.pot file as well as all debian/po/*.po files. Such updates will be handled by the synchronization script.

Modifications to templates will change the status of the translations for the modified string: in all PO files, this string will be marked as fuzzy. This means that, though the former translation is kept, it is known to be outdated. Fuzzy translations are of course not used: a template which contains at least one fuzzy string will be completely displayed in English. As a consequence, maintainers should not worry about outdated translations, this is the translators job.

This fuzzy string will be marked fuzzy in the general PO files when the synchronization script will be run.

When modifications change the string too deeply, the translations are not kept and thus the string becomes untranslated. The old translation is moved as an obsoleted entry and thus not completely lost.

2.5.2.  Review changes to existing templates

Some peer review is strongly suggested when changing existing debconf templates and the changes are significant enough to motivate a peer review (maintainers should be aware that even minor changes might be inconsistent with the Debian Installer writing style, so in doubt, any change should be considered as "significant enough").

In such case, it is recommended to first duplicate the existing template, with another name (for instance, the former name followed by _save).

The changed template is then unmarked for translation (by removing the leading "_" character) and a review may be requested in the mailing list.

As soon as the review is completed, the modified template should be marked for translation again.

Before removing the old template, the l10n-sync script must be run once to fill in the new template with the former translation, by fuzzy matching.

2.5.3. Trivial modifications

Trivial modifications are all modifications which have no impact on the translations: these will be most often spelling errors or typos in original templates files.

If the update is made without care, correcting a typo in one template will result in one more fuzzy string in all translations.

In such case, a special unfuzzy process may be run on PO files.

As an example, let's assume that an original template contained the following wrong English sentence:

These changes will be applied to all partitons.

If the package maintainer simply changes partitons to the correct partitions word, all translations of the paragraph containing this sentence will be fuzzied.

In this case, preventive unfuzzyfication may be done:

cd <di_dir>/packages/po/
git pull
mkdir NEW
for i in *.po; do
 msgcat --no-wrap $i |\
   sed -e '/^msgid/s/partitons/partitions/g' |\
   msgcat - > NEW/$i && mv NEW/$i $i
done
git add *
git commit -m"Preventive unfuzzy before correcting typo in <mypackage>" *.po
rmdir NEW

Then, the maintainer must immediately correct the typo in the original <package>.templates file.

This is a dangerous action. The replacement string in the sed command above must be carefully chosen so that it matches only the occurrence that is changed.

The po4a package maintainers have written a special tool named msguntypot to handle such preventive unfuzzyfication.

If in doubt, maintainers should contact the Debian Installer i18n coordinators before committing the error correction to the original templates file.