Russian Qt Forum
Ноябрь 23, 2024, 05:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: Динамическая смена языка прораммы  (Прочитано 28554 раз)
crossly
Гость
« Ответ #30 : Январь 06, 2009, 15:30 »

дабы не создавать отдельную тему.... при смене языка обновляем надписи и все ок... вот только как быть с QMessageBox... ??
Записан
Dendy
Гость
« Ответ #31 : Январь 06, 2009, 16:16 »

Таки лучше бы новую тему создал.

Таскать за собой не только переводы собственной программы, а и самой Qt. При смене языка вызывать несколько раз installTranslator()  - по разудля каждого модуля. Сама Qt в контексте перевода - отдельный модуль, ts/qm файлы для которого (под каждый язык) лежат в $QTDIR/translations.
Записан
crossly
Гость
« Ответ #32 : Январь 06, 2009, 16:45 »

а зачем мне перевод qt... я же в месагу свой текст вставляю... просто проблема в том что месбокс создается в функции.... и заново установить текст в нем нет возможности(до его создания)....
Записан
BRE
Гость
« Ответ #33 : Январь 06, 2009, 17:17 »

После смены языка (installTranslator), при следующем вызове этой функции, все сообщения заключенные в tr...() будут транслироваться в нужном языке.
Записан
Dendy
Гость
« Ответ #34 : Январь 06, 2009, 17:59 »

Как сказ
а зачем мне перевод qt... я же в месагу свой текст вставляю... просто проблема в том что месбокс создается в функции.... и заново установить текст в нем нет возможности(до его создания)....

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

Или у вас висит некий QMessageBox, а параллельно меняется язык? Ну тут уж этот бокс понятия не имеет как ему строку обновить. Можете расценивать этот бокс как ещё один элемент в кеше локализированных ресурсов - и пусть родительсткое окно для этого бокса само по событию QEvent::LanguageChanged подставит ему новую строку.
Записан
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 21.