Comment 6 for bug 356333

Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

Ok, I just meant that "%s" there, ie. to have the list as %s so it's a string to be substituted and there is no need to translate the numerous variations possible. If the hard-coded "and" would be dropped (so that it would be eg. "will delete Window XP, Fedora 11, Ubuntu 7.10", maybe ok enough) there would not be any problem besides that translators needing to compensate the text around %s:s so that it's at least somehow fluent language.

But the current code fills in the %s:s already before the gettext would be called, so that would need replacing.

My proposal would be to:
1. change '%s and %s' to '%s, %s' to simplify the problem a bit
2. make the list into a separate variable (like removeddistributions) containing the whole "Win, Fedora, Ubuntu" string
3. call gettext in plural form finally with something like this, but python equivalent:
sprintf( finaltxt, ngettext ('This will delete %s and replace it with %s.', 'This will delete %s and replace them with %s'., len(l) ) , removeddistributions, get_release_name() );

The finaltxt would be then what gets displayed, after ngettext has fetched the translation (taking into account the possibility of a plural form) and sprintf replaced the %s:s with the list (removeddistributions) and release name. len(l) is used to determine the plural form(s).