crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

_Vitaliy_
  опции профиля:
сообщение 4.9.2009, 21:23
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 59
Регистрация: 20.11.2008
Пользователь №: 428

Спасибо сказали: 3 раз(а)




Репутация:   0  


Доброго времени суток всем.
Есть вопрос. Как организовать динамическую смену языков в приложении. Т.е. имеем приложение с несколькими формами, в главном окне имеем меню, в нем есть пункт "Настройка", при выборе которого открывается окно настроек, в нем при помощи комбобокса выбираем "рус." или "англ." жмен баттон "ок" и происходит смена языка. Если у кого есть что-то наподобие или более-менее добротные наброски поделитесь плиз с новичком в этом вопросе.
Единственное есть просьба к Шлее и Бланшет не отправлять...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ufna
  опции профиля:
сообщение 6.9.2009, 17:02
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 362
Регистрация: 24.5.2008
Из: Курган/СПб
Пользователь №: 182

Спасибо сказали: 29 раз(а)




Репутация:   5  


вообще, прочитка ассистанса дала следующий результат: если виджет уже создан, то язык в нем можно менять только ловля ChangeEvent, а в нем уже задавать все tr(). Тогда установка транслятора будет менять язык "на лету".

Может быть, есть еще какие варианты, но я нашел только такой. Его же и реализовал. Главное, не забывать, что два одинаковых tr() косо обрабатываются лингвистом.

Т.е.:
//--------------------------------------------------------------------------------------
void cUPicsConfigPageUI::changeEvent(QEvent *event)
{
    if (event->type() == QEvent::LanguageChange) {
        setName(tr("User Interface"));

        pLFileSizeToThumbName->setText(tr("Maximum size of files to be thumbnailed to show preview"));
        pLFileSizeToThumb->setText(tr("File size"));

       ...
    }
    else
        QWidget::changeEvent(event);
}


Сообщение отредактировал ufna - 6.9.2009, 17:05
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 13.8.2025, 18:34