Так все-таки, люди, помогите разобраться. Не хочет у меня таким способом менять язык сразу, а только после закрытия и открытия заново диалога, притом в главном окне контекстное меню так и остается непереведенным.
Согласно книге Jasmin Blanchette и Mark Summerfield нужна собственная функция retranslateStrings(), где сконцентрированы все строки подлежащие переводу. Но это для Qt3.x. Или в 4-ке также?
Опишу более детально как у меня.
Есть главное окно, у которого есть контекстное меню с пунктами Settings и Quit. Settings, понятно, открывает диалоговое окно с настройками, где между всего прочего есть QComboBox со списком возможных языков (подгружается, как в экзампле i18n, т.е. смотрить какие есть файлы перевода, исчет строку с названием языка и вставляет в QComboBox). Сигнал activated(int) связан со слотом changeLanguage(int) в котором должна происходить смена языка.
...::changeLanguage(int item)
{
Qtranslator *translator = new Qtranslator;
translator->load(qmFiles[item]); // qmFiles содержит список файлов перевода
qApp->installTranslator(translator);
Явно что-то делаю не так, но не могу понять что... Помогите разобраться.