а про 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:
и далее по тексту .....