а про Qobject::tr чего написано ?
If n >= 0, all occurrences of %n in the resulting string are replaced with a decimal representation of n. In addition, depending on n's value, the translation text may vary. 
Example: 
 int n = messages.count();
 showMessage(tr("%n message(s) saved", "", n)); 
The table below shows what string is returned depending on the active translation: 
 и далее по тексту .....