Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: KsenZ от Май 23, 2014, 11:21



Название: [РЕШЕНО] QTranslator и QString
Отправлено: KsenZ от Май 23, 2014, 11:21
Пытаюсь подключить перевод к своей программе.
Собственно вот пример кода:
Код:
#include <QTranslator>
#include <QLocale>
#include "myApp.h"

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

    QString fname = QString("myapp_%1.qm").arg(QLocale::system().name().left(2));
    QTranslator translator;
    translator.load(fname, TRANSLATIONS_DIR, "_");
    app.installTranslator(&translator);

    return app.exec();
}

При сборе выдет ошибки:
Код:
In file included from /usr/include/qt4/QtCore/qobject.h:48:0,                                                                                                                
                 from /usr/include/qt4/QtCore/qtranslator.h:45,
                 from /usr/include/qt4/QtCore/QTranslator:1,
                 from /home/ksenz/dev/myapp/src/main.cpp:1:
/usr/include/qt4/QtCore/qstring.h: В функции «int main(int, char**)»:
/usr/include/qt4/QtCore/qstring.h:597:5: ошибка: «QString::QString(const char*)» is private
     QString(const char *ch);
     ^
/home/ksenz/dev/myapp/src/main.cpp:9:43: ошибка: в данном контексте
     QString fname = QString("myapp_%1.qm").arg(QLocale::system().name().left(2));
                                           ^
In file included from /usr/include/qt4/QtCore/qobject.h:48:0,
                 from /usr/include/qt4/QtCore/qtranslator.h:45,
                 from /usr/include/qt4/QtCore/QTranslator:1,
                 from /home/ksenz/dev/myapp/src/main.cpp:1:
/usr/include/qt4/QtCore/qstring.h:597:5: ошибка: «QString::QString(const char*)» is private
     QString(const char *ch);
     ^
/home/ksenz/dev/myapp/src/main.cpp:11:49: ошибка: в данном контексте
     translator.load(fname, TRANSLATIONS_DIR, "_");
                                                 ^
In file included from /usr/include/qt4/QtCore/qobject.h:48:0,
                 from /usr/include/qt4/QtCore/qtranslator.h:45,
                 from /usr/include/qt4/QtCore/QTranslator:1,
                 from /home/ksenz/dev/myapp/src/main.cpp:1:
/usr/include/qt4/QtCore/qstring.h:597:5: ошибка: «QString::QString(const char*)» is private
     QString(const char *ch);
     ^
/home/ksenz/dev/myapp/src/main.cpp:11:49: ошибка: в данном контексте
     translator.load(fname, TRANSLATIONS_DIR, "_");
                                                 ^

Причем данный пример, как подключить перевод, я взял из вполне рабочего приложения, которое отлично собирается.
Что же не так у меня?


Название: Re: QTranslator и QString
Отправлено: carrygun от Май 23, 2014, 11:28
#include <QString>


Название: Re: QTranslator и QString
Отправлено: KsenZ от Май 23, 2014, 11:33
#include <QString>
Это не чего не меняет. Ошибки теже.


Название: Re: QTranslator и QString
Отправлено: Alex Custov от Май 23, 2014, 11:46
Думаю Qt собран с QT_NO_CAST_ASCII. Используй QLatin1String.


Название: Re: QTranslator и QString
Отправлено: KsenZ от Май 23, 2014, 12:10
Думаю Qt собран с QT_NO_CAST_ASCII. Используй QLatin1String.

Да действительно. Спасибо за подсказку. Только не Qt был собран с QT_NO_CAST_ASCII, а в CMakeLists.txt была директива ADD_DEFINITIONS(-DQT_NO_CAST_FROM_ASCII)