qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
registerMetaTypes();
- setupTranslations();
QCoreApplication::setApplicationName(buildInfo().applicationName);
QCoreApplication::setOrganizationName(buildInfo().organizationName);
qRegisterMetaTypeStreamOperators<MsgId>("MsgId");
}
-void Quassel::setupTranslations() {
- // Set up i18n support
- QLocale locale = QLocale::system();
-
- QTranslator *qtTranslator = new QTranslator(qApp);
- qtTranslator->setObjectName("QtTr");
- qtTranslator->load(QString(":i18n/qt_%1").arg(locale.name()));
- qApp->installTranslator(qtTranslator);
-
- QTranslator *quasselTranslator = new QTranslator(qApp);
- quasselTranslator->setObjectName("QuasselTr");
- quasselTranslator->load(QString(":i18n/quassel_%1").arg(locale.name()));
- qApp->installTranslator(quasselTranslator);
-}
-
void Quassel::setupBuildInfo(const QString &generated) {
_buildInfo.applicationName = "Quassel IRC";
_buildInfo.coreApplicationName = "Quassel Core";
QFile dumpFile(coreDumpFileName());
dumpFile.open(QIODevice::Append);
QTextStream dumpStream(&dumpFile);
-
+
dumpStream << "Fatal: " << msg << '\n';
dumpStream.flush();
dumpFile.close();
inline void setRunMode(RunMode mode);
private:
- void setupTranslations();
void registerMetaTypes();
static void handleSignal(int signal);
#include <QCoreApplication>
#include <QDebug>
+#include <QLibraryInfo>
#include <QTextCodec>
#include <QTranslator>
void loadTranslation(const QLocale &locale) {
QTranslator *qtTranslator = QCoreApplication::instance()->findChild<QTranslator *>("QtTr");
QTranslator *quasselTranslator = QCoreApplication::instance()->findChild<QTranslator *>("QuasselTr");
- Q_ASSERT(qtTranslator);
- Q_ASSERT(quasselTranslator);
- QLocale::setDefault(locale);
+ if(!qtTranslator) {
+ qtTranslator = new QTranslator(qApp);
+ qtTranslator->setObjectName("QtTr");
+ qApp->installTranslator(qtTranslator);
+ }
+ if(!quasselTranslator) {
+ quasselTranslator = new QTranslator(qApp);
+ quasselTranslator->setObjectName("QuasselTr");
+ qApp->installTranslator(quasselTranslator);
+ }
- QCoreApplication::removeTranslator(qtTranslator);
- QCoreApplication::removeTranslator(quasselTranslator);
+ QLocale::setDefault(locale);
if(locale.language() == QLocale::C)
return;
- qtTranslator->load(QString(":i18n/qt_%1").arg(locale.name()));
+ qtTranslator->load(QString("%2/qt_%1").arg(locale.name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath)));
quasselTranslator->load(QString(":i18n/quassel_%1").arg(locale.name()));
-
- QCoreApplication::installTranslator(qtTranslator);
- QCoreApplication::installTranslator(quasselTranslator);
}
QString secondsToString(int timeInSeconds) {
Core::Core() : storage(0) {
_startTime = QDateTime::currentDateTime().toUTC(); // for uptime :)
+ loadTranslation(QLocale::system());
+
// Register storage backends here!
registerStorageBackend(new SqliteStorage(this));
// in mono mode we only start a local port if a port is specified in the cli call
if(Quassel::runMode() == Quassel::Monolithic && !Quassel::isOptionSet("port"))
return true;
-
+
bool success = false;
uint port = Quassel::optionValue("port").toUInt();