Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Hvzh от Декабрь 29, 2014, 10:31



Название: Проблема с локализацией
Отправлено: Hvzh от Декабрь 29, 2014, 10:31
Доброго времени суток!

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

Qt 5.4.0, MinGW 4.9(32-bit), Windows 7


Название: Re: Проблема с локализацией
Отправлено: Пантер от Декабрь 29, 2014, 10:33
1. В файл ts они попали.
2. Как грузишь перевод?
3. Как юзаешь ui файлы (динамическая подгрузка или наследование/аггрегация).
4. Может, не та qm хватается?


Название: Re: Проблема с локализацией
Отправлено: Hvzh от Декабрь 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 однозначно тот


Название: Re: Проблема с локализацией
Отправлено: Пантер от Декабрь 29, 2014, 11:00
Проверь, что возвращают load и installTranslator.


Название: Re: Проблема с локализацией
Отправлено: Hvzh от Декабрь 29, 2014, 11:05
Обе возвращают true


Название: Re: Проблема с локализацией
Отправлено: Пантер от Декабрь 29, 2014, 11:29
http://qt-project.org/forums/viewthread/4207


Название: Re: Проблема с локализацией
Отправлено: Hvzh от Декабрь 29, 2014, 12:39
Спасибо, попробую


Название: Re: Проблема с локализацией
Отправлено: Hvzh от Декабрь 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));

Остается понять, с какого хрена в текущем проекте не делается перевод