Consider the following code: int numberOfImages = [1 or 2]; QString fileName = "someFile.jpg"; QString windowTitle = QString(i18ncp("@title:window", "Copy %2", "Copy %1 images", numberOfImages, fileName)) The singular case correctly displays "Copy someFile.jpg" However, the plural case, displays "Copy 2 images(I18N_EXCESS_ARGUMENTS_SUPPLIED)" In fact, there aren't excess arguments, it's just that both variables aren't used in each string. But besides the error message, the output is otherwise perfectly valid.
Turns out this is not only intended behaviour, but also useful for catching bugs. See here for the full explanation: https://phabricator.kde.org/D8409#158116
Yep, makes sense.