Comment 7 for bug 361312

Revision history for this message
to be removed (liw) wrote :

Specifically, the problem is as follows:

* Part of the computer-janitor code is in the update-manager source package. This is necessary so that u-m can use c-j plugins. This code uses the "update-manager" translation domain.

* The rest of the computer-janitor code is in the computer-janitor package. This code uses the "computerjanitor" translation domain (no hyphen).

* The code to format the description of a package for the UI is in the part in update-manager. It failed to try to translate the reason for why something is cruft. (See update-manager/Janitor/computerjanitor/package_cruft.py, method get_description.)

* However, even if it had tried to do that, it would have failed, since the translation would have been in the wrong domain.

* Fixing this in computer-janitor isn't as simple as calling gettext on the return value of the get_description method, since get_description returns a string that combines the text explaining why something is cruft and the package description.

* Worse, this is specific to the type of cruft: it doesn't apply to all kinds of cruft. Special handling is needed for each type of cruft.

* The proper fix is to change the API for get_description so that it either returns translated text (and is given the translation domain), or else returns the translatable parts separately. However, this proper change is too much the night before feature freeze of all of Ubuntu. It would require a new update-manager upload as well as a bunch of testing to make sure the API change doesn't break anything anywhere.

* Thus, I will instead do something really ugly, and split up the returned value from get_description, and translate the appropriate part and the paste things back together the way they should be. This can be done inside computer-janitor, and everything will be localized. The worst that will happen is that computer-janitor-gtk will show some untranslated text.