diff --git a/main.cpp b/main.cpp index 5587e4e..204bfed 100644 --- a/main.cpp +++ b/main.cpp @@ -60,8 +60,7 @@ int main(int argc, char *argv[]) NetworkAccessManagerFactory namf; QQmlApplicationEngine engine; QTranslator translator; - if (translator.load(QLocale(), "rpi-imager", "_", QLatin1String(":/i18n"))) - QCoreApplication::installTranslator(&translator); + QString customQm; /* Parse commandline arguments (if any) */ QString customRepo; @@ -114,6 +113,22 @@ int main(int argc, char *argv[]) imageWriter.setCustomOsListUrl(QUrl::fromLocalFile(customRepo)); } } + else if (args[i] == "--qm") + { + if (args.size()-i < 2 || args[i+1].startsWith("-")) + { + cerr << "Missing QM file after --qm" << endl; + return 1; + } + customQm = args[++i]; + + QFileInfo fi(customQm); + if (!fi.isFile()) + { + cerr << "Custom QM file does not exist or is not a regular file: " << customQm << endl; + return 1; + } + } else if (args[i] == "--debug") { #ifdef Q_OS_WIN @@ -129,7 +144,7 @@ int main(int argc, char *argv[]) } else if (args[i] == "--help") { - cerr << args[0] << " [--debug] [--version] [--repo ] []" << endl; + cerr << args[0] << " [--debug] [--version] [--repo ] [--qm ] []" << endl; return 0; } else if (args[i] == "--version") @@ -144,6 +159,17 @@ int main(int argc, char *argv[]) } } + if (customQm.isEmpty()) + { + if (translator.load(QLocale(), "rpi-imager", "_", QLatin1String(":/i18n"))) + QCoreApplication::installTranslator(&translator); + } + else + { + if (translator.load(customQm)) + QCoreApplication::installTranslator(&translator); + } + if (!url.isEmpty()) imageWriter.setSrc(url); imageWriter.setEngine(&engine);