Comment 17 for bug 514401

I think the important thing to understand first is how the text for the string in all *.txt.in files are loaded at runtime.

They are rfc822deb files, and their strings are now correctly marked for _extraction_, so that at build time intltool extracts their translatable strings and puts them in the po/checkbox.pot file exposing them to translators.

I think the difference here with most of the translations we're used to deal with is that in this particular case marking a string to be translatable means that it will be extracted, but it does not mean that it will be passed to gettext at runtime to load its translation.

What I mean is:

1) In jobs/firewire.txt.in
_description:
 Firewire HDD verification procedure:
[...]

=> Here the leading underscore '_' tells intltool to extract the string, but it does not call gettext, so translations are not loaded at runtime.

2) Somewhere in a .py file in the code:

from gettext import gettext as _

_("This is a translatable string in the code")

=> Here wrapping the string with the gettext function tells intltool to extract the string and calls the gettext function. Hence translations are loaded at runtime.

So how can we call gettext giving it the text in the *.txt files as an argument in the first case?