Скажем, мы начинаем с:
QString format("%1: %2 %3);
Тогда звоните:
format.arg("something");
Формат теперь будет:
"что-то:% 1% 2"
... означает, что вы можете создать строку по ходу дела.
Изменение порядка маркеров мест возможно с помощью механизма перевода Qt, который позволяет вам сказать:
format = tr("Hi, %1, I hope you are %2");
и добавьте его в свою таблицу перевода, и у вас есть параметры в другом порядке для разных языков.