On Sunday 23 December 2007, Christian Perrier wrote:
> While running a default install with one of the dailies, I found out
> that tasksel was promptig me in English while the installation was
> running in French.
>
> Of course, tasksel's translation is complete for French, even for the
> uploaded version.
>
> Indeed, the *tasks names* were translated while the main screen ("At
> the moment, only the core of the system...") wasn't.
This is caused by the fact that the debconf-copydb call in pkgsel's postinst
(to copy the d-i templates we want available in the target system) clobbers
the templates.dat file in the target system.
AFAICT this is because of the post-Etch change to "filter out" translations
other than the currently selected one.
This conclusion was reached as follows:
- I see the same issue for Dutch
- if I check templates.dat in target after pkgsel, it contains no
translations for tasksel
- I've verified that the translations _are_ present after tasksel is
installed during base-installer
- if the debconf-copydb call in the pkgsel postinst is commented out, the
translated text is displayed correctly
- with the debconf-copydb call, the templates.dat file in /target shrinks
from 518kB to 45kB
[... more testing ...]
The reason the selected language is filtered out as well is that we set
LANG=C in pkgsel's postinst.
The issue can be worked around by adding a 'unset DEBCONF_DROP_TRANSLATIONS'
in the pkgsel postinst, but I don't feel that would be the correct solution
as IMO by default the filtering should just not have *any* effect on other
debconf databases than the D-I one. Having to remember to unset such a
dangerous option is not a good design.
A possible solution could be to NOT have DEBCONF_DROP_TRANSLATIONS=1 for the
whole D-I environment but to only set it in places where we actually want
the filtering to happen.
CCing Colin to get his input on this as he implemented the feature.
Cheers,
FJP
Attachment:
signature.asc
Description: This is a digitally signed message part.