diff --git a/dialogs/advancedvideodialog.h b/dialogs/advancedvideodialog.h index a9510aee3..c20009998 100644 --- a/dialogs/advancedvideodialog.h +++ b/dialogs/advancedvideodialog.h @@ -14,7 +14,8 @@ public: int encoding_codec, VideoCodecParams& iparams); - void accept(); +public slots: + virtual void accept() override; private: VideoCodecParams& params; diff --git a/dialogs/preferencesdialog.cpp b/dialogs/preferencesdialog.cpp index b9218eda1..a7a3a92d4 100644 --- a/dialogs/preferencesdialog.cpp +++ b/dialogs/preferencesdialog.cpp @@ -392,11 +392,14 @@ void PreferencesDialog::setup_ui() { if (translation_dir.exists()) { QStringList translation_files = translation_dir.entryList({"*.qm"}, QDir::Files | QDir::NoDotAndDotDot); for (int i=0;iaddItem(QLocale(locale_str).nativeLanguageName(), locale_full_path); + language_combobox->addItem(QLocale(locale_str).nativeLanguageName(), locale_relative_path); if (config.language_file == locale_full_path) { language_combobox->setCurrentIndex(language_combobox->count() - 1); diff --git a/mainwindow.cpp b/mainwindow.cpp index 1d18c1b82..898e8d70d 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -207,11 +207,18 @@ MainWindow::MainWindow(QWidget *parent, const QString &an) : config.language_file : runtime_config.external_translation_file; - if (!language_file.isEmpty() - && QFileInfo::exists(language_file)) { - QTranslator* translator = new QTranslator(this); - translator->load(language_file); - QApplication::installTranslator(translator); + if (!language_file.isEmpty()) { + + // translation files are stored relative to app path (see GitHub issue #454) + QString full_language_path = QDir(get_app_dir()).filePath(language_file); + + if (QFileInfo::exists(full_language_path)) { + QTranslator* translator = new QTranslator(this); + translator->load(full_language_path); + QApplication::installTranslator(translator); + } else { + qWarning() << "Failed to load translation file" << full_language_path << ". No language will be loaded."; + } } alloc_panels(this);