Tue, 31 May 2022 15:05:52 +0200
Install translations in /bmsapp/translations. Use a searchpath to try to load a translation.
/** * main.cpp is part of bmsapp. * * bmsapp is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * bmsapp is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include <QApplication> #include <QCommandLineParser> #include <QDebug> #include <QDate> #include <QMessageBox> #include <QSettings> #include "MainWindow.h" #include "config.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); QString locale = QLocale::system().name(); app.setApplicationName("bmsapp"); app.setApplicationVersion(VERSIONSTRING); app.setOrganizationName("mbse"); /* Stylesheet setup */ QFile f(":/qdarkstyle/theme/style.qss"); //QFile f(":dummy"); if (!f.exists()) { printf("Unable to set stylesheet, file not found\n"); } else { f.open(QFile::ReadOnly | QFile::Text); QTextStream ts(&f); qApp->setStyleSheet(ts.readAll()); } /* Setup user ini format */ QSettings::setDefaultFormat(QSettings::IniFormat); /* Setup commandline parser */ QCommandLineParser parser; parser.setApplicationDescription("Brewery Management System Application."); QCommandLineOption const startConfigOption({"c", "config"}, "Start the configuration editor."); parser.addOption(startConfigOption); QCommandLineOption const useDevelopOption({"d", "develop"}, "Use the development database."); parser.addOption(useDevelopOption); parser.addHelpOption(); parser.addVersionOption(); parser.process(app); QString langFile = QString("bmsapp_") + locale; QStringList searchDirs = QStringList() << qApp->applicationDirPath() << qApp->applicationDirPath() + "/../share/bmsapp/translations"; QTranslator translator; for (int i = 0; i < searchDirs.size(); i++) { if (translator.load(langFile, searchDirs[i])) { app.installTranslator(&translator); qDebug() << "lang from" << searchDirs[i]; break; } } qDebug().noquote() << "Starting" << app.applicationName() << app.applicationVersion() << QDateTime::currentDateTime().toString(); MainWindow w(parser.isSet(useDevelopOption), parser.isSet(startConfigOption)); w.show(); try { auto mainAppReturnValue = app.exec(); qDebug().noquote() << "Finished" << app.applicationName() << app.applicationVersion() << QDateTime::currentDateTime().toString(); return mainAppReturnValue; } catch (const QString &error) { QMessageBox::critical(0, QApplication::tr("Application terminates"), QApplication::tr("The application encountered a fatal error.\nError message:\n%1").arg(error)); } return EXIT_FAILURE; }