Как сказ
а зачем мне перевод qt... я же в месагу свой текст вставляю... просто проблема в том что месбокс создается в функции.... и заново установить текст в нем нет возможности(до его создания)....
Как заметил BRE, типичный случай вызова QMessageBox - подставляя в него строки каждый раз из текущего словаря через tr(). Чаще через его статические методы. Я думал вас не устраивают надписи на кнопках, вроде: "Cancel". Если программа не пересоздаёт строки автоматом при визуализации, а хранит их - то она должна этот свой кеш локализированных данных обновить реагируя на событие QEvent::LanguageChanged.
Или у вас висит некий QMessageBox, а параллельно меняется язык? Ну тут уж этот бокс понятия не имеет как ему строку обновить. Можете расценивать этот бокс как ещё один элемент в кеше локализированных ресурсов - и пусть родительсткое окно для этого бокса само по событию QEvent::LanguageChanged подставит ему новую строку.