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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с локализацией  (Прочитано 3790 раз)
Hvzh
Гость
« : Декабрь 29, 2014, 10:31 »

Доброго времени суток!

Имеется проект с графическими объектами, нарисованными в Дизайнере. Все элементы, подлежащие переводу, помечены как "translatible". Сгенерил файл для русской локализации. В итоге, при запуске программы на русский переводятся только те строки, которые имеются в исходном коде С++. Все же элементы, сгенеренные в Дизайнере, остаются непереведенными. Подскажите, в какую сторону копать?

Qt 5.4.0, MinGW 4.9(32-bit), Windows 7
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Декабрь 29, 2014, 10:33 »

1. В файл ts они попали.
2. Как грузишь перевод?
3. Как юзаешь ui файлы (динамическая подгрузка или наследование/аггрегация).
4. Может, не та qm хватается?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Hvzh
Гость
« Ответ #2 : Декабрь 29, 2014, 10:57 »

1. В ts попали
2. Гружу так:

Код:
    QTranslator qtTranslator;
    qtTranslator.load("phototable_ru" );
    a.installTranslator(&qtTranslator);

3. Все формы юзаются так:
Код:
ScanTableWindow::ScanTableWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::ScanTableWindow)
{
    ui->setupUi(this);
    newDlg = new newDialog();
    lvf = new LiveViewForm();
    settingsDlg = new SettingsDialog();
    settings = new QSettings("./PhotoTable.ini", QSettings::IniFormat);
    ui->mainToolBar->hide();
    setupActions();
    currentPosition = 0;
}

4. qm однозначно тот
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Декабрь 29, 2014, 11:00 »

Проверь, что возвращают load и installTranslator.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Hvzh
Гость
« Ответ #4 : Декабрь 29, 2014, 11:05 »

Обе возвращают true
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Декабрь 29, 2014, 11:29 »

http://qt-project.org/forums/viewthread/4207
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Hvzh
Гость
« Ответ #6 : Декабрь 29, 2014, 12:39 »

Спасибо, попробую
Записан
Hvzh
Гость
« Ответ #7 : Декабрь 29, 2014, 13:00 »

Так, проблема стала проясняться. Ни в одном из сгенеренных для данного проекта ui_*.h файлов в функциях retranslateUi отсутствует перевод. Вот как это выглядит:

Код:
        LiveViewForm->setWindowTitle(QApplication::translate("LiveViewForm", "LiveView", 0));


А вот как это выглядит в другом моем проекте:

Код:
        NewPhotoForm->setWindowTitle(QApplication::translate("NewPhotoForm", "\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270", 0));

Остается понять, с какого хрена в текущем проекте не делается перевод
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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