LINUX.ORG.RU

<censured> с локализацией

 , ,


0

1

Вроде бы всё сделал по инструкции: создал ts файл? в Qt linguist перевёл, скомпилил в qm, в main.cpp добавил(сначала с нормальным получением локализации, потом, отчаявшись, захардкодил, но это ничего не дало):

QTranslator translator(0);
    translator.load("translation_ru_RU");
    QApplication a(argc, argv);
    a.installTranslator(&translator);
    ProgramWindow w;
    w.show();
    
    return a.exec();
В результате в IDE всё нормально, если запустить из FM, скопировав qm файл в каталог с билдом - тоже, но при запуске из консоли локализация теряется. При запуске того же кода в винде локализация не подгружается уже в Qt Creator'e. В чём м.б. дело? Версия Qt 4.8.

★★★★

Последнее исправление: beastie (всего исправлений: 1)

Возьми путь к приложению в QDir и оттуда получай по относительному пути абсолютный путь к переводу, путь к приложению лежит где-то в статических методах QApplication.

P.S. у меня это выглядит вообще вот так, и локализации добавлены в ресурсы

int main(int argc, char **argv)
{
    QApplication app(argc, argv);

    QTranslator *qtTranslator = new QTranslator(qApp);
    qtTranslator->load("qt_" + QLocale::system().name(),
                       QLibraryInfo::location(QLibraryInfo::TranslationsPath));
    qApp->installTranslator(qtTranslator);

    QTranslator appTranslator;
    appTranslator.load(":/i18n/translations/i18n_" + QLocale::system().name());
    app.installTranslator(&appTranslator);

    MainWindowImpl mw(0);
    mw.show();

    QStringList arguments = app.arguments();
    if(arguments.count() > 1) {
        mw.openFile(arguments.last());
    }

    app.connect(&mw, SIGNAL(quit()), SLOT(quit()));

    return app.exec();
}

quiet_readonly ★★★★
()
Последнее исправление: quiet_readonly (всего исправлений: 2)
Ответ на: комментарий от quiet_readonly

О, спасибо, добавил путь из QDir, заработало. До этого, видимо, брался текущий каталог, возвращаемый pwd(и что-то аналогичное в винде), а не папка, из которой выполняется

wingear ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.