View Issue Details

IDProjectCategoryView StatusLast Update
0018742phpList 3 applicationInternationalization (l18n)public19-11-19 22:33
Reporterduncanc Assigned To 
Status assignedResolutionopen 
Product Version3.3.1 
Target Versionnext patch 
Summary0018742: Process bounces message omits number of bounces
DescriptionPage processbounces.php has

    outputProcessBounce(s('%d bounces to fetch from the mailbox', $num).PHP_EOL);

The translation in English for the string '%d bounces to fetch from the mailbox' seems to omit the % character but that is present for other languages, see the attached screenshot.

There is a similar problem with a message about updating top level domains. See the second screenshot.
TagsNo tags attached.


duplicate of 0018612 resolvedxheni Incorrect translation 



04-06-17 10:47


translation.png (29,201 bytes)   
translation.png (29,201 bytes)   


04-06-17 11:22


top level domains.png (11,681 bytes)   
top level domains.png (11,681 bytes)   


05-06-17 13:03

manager   ~0059165

Should the %d be included in the translation or not?

'Bounces to fetch' string:

'Top level domains' string:


05-06-17 22:05

administrator   ~0059167

Yes, the %d needs to be in the translation. That is clearly explained here:

I think we need to extend the "s" function to scan the translated string and verify it has the correct number of %s and %d in it, and otherwise reject it.


14-11-17 09:33

updater   ~0059669

Can at least the translations be corrected without waiting for any code changes?


14-11-17 11:12

updater   ~0059670

Looking at that specific translation, it appears to fail two pofilter tests - starting punctuation and printf(), which are caused by the mismatch of % placeholders.

So these sort of errors should be caught by the translation process.