diff --git a/installer/mkvtoolnix.nsi b/installer/mkvtoolnix.nsi index 3240ed7ff..cbcf62fc6 100644 --- a/installer/mkvtoolnix.nsi +++ b/installer/mkvtoolnix.nsi @@ -212,41 +212,36 @@ Section "Program files" SEC01 File "examples\matroskachapters.dtd" File "examples\matroskasegmentinfo.dtd" File "examples\matroskatags.dtd" + SetOutPath "$INSTDIR\locale\libqt" + File "locale\libqt\*.qm" SetOutPath "$INSTDIR\locale\ca\LC_MESSAGES" File "/oname=mkvtoolnix.mo" "po\ca.mo" SetOutPath "$INSTDIR\locale\cs\LC_MESSAGES" File "/oname=mkvtoolnix.mo" "po\cs.mo" - File "/oname=qtbase.qm" "qt-translations\qtbase_cs.qm" SetOutPath "$INSTDIR\locale\de\LC_MESSAGES" File "/oname=mkvtoolnix.mo" "po\de.mo" - File "/oname=qtbase.qm" "qt-translations\qtbase_de.qm" SetOutPath "$INSTDIR\locale\es\LC_MESSAGES" File "/oname=mkvtoolnix.mo" "po\es.mo" SetOutPath "$INSTDIR\locale\eu\LC_MESSAGES" File "/oname=mkvtoolnix.mo" "po\eu.mo" SetOutPath "$INSTDIR\locale\fr\LC_MESSAGES" File "/oname=mkvtoolnix.mo" "po\fr.mo" - File "/oname=qtbase.qm" "po\qt\qtbase_fr.qm" SetOutPath "$INSTDIR\locale\it\LC_MESSAGES" File "/oname=mkvtoolnix.mo" "po\it.mo" - File "/oname=qtbase.qm" "qt-translations\qtbase_it.qm" SetOutPath "$INSTDIR\locale\ja\LC_MESSAGES" File "/oname=mkvtoolnix.mo" "po\ja.mo" - File "/oname=qtbase.qm" "qt-translations\qtbase_ja.qm" SetOutPath "$INSTDIR\locale\lt\LC_MESSAGES" File "/oname=mkvtoolnix.mo" "po\lt.mo" SetOutPath "$INSTDIR\locale\nl\LC_MESSAGES" File "/oname=mkvtoolnix.mo" "po\nl.mo" SetOutPath "$INSTDIR\locale\pl\LC_MESSAGES" File "/oname=mkvtoolnix.mo" "po\pl.mo" - File "/oname=qtbase.qm" "po\qt\qtbase_pl.qm" SetOutPath "$INSTDIR\locale\pt\LC_MESSAGES" File "/oname=mkvtoolnix.mo" "po\pt.mo" SetOutPath "$INSTDIR\locale\pt_BR\LC_MESSAGES" File "/oname=mkvtoolnix.mo" "po\pt_BR.mo" SetOutPath "$INSTDIR\locale\ru\LC_MESSAGES" File "/oname=mkvtoolnix.mo" "po\ru.mo" - File "/oname=qtbase.qm" "qt-translations\qtbase_ru.qm" SetOutPath "$INSTDIR\locale\sr_RS@latin\LC_MESSAGES" File "/oname=mkvtoolnix.mo" "po\sr_RS@latin.mo" SetOutPath "$INSTDIR\locale\sr_RS\LC_MESSAGES" @@ -257,7 +252,6 @@ Section "Program files" SEC01 File "/oname=mkvtoolnix.mo" "po\tr.mo" SetOutPath "$INSTDIR\locale\uk\LC_MESSAGES" File "/oname=mkvtoolnix.mo" "po\uk.mo" - File "/oname=qtbase.qm" "qt-translations\qtbase_uk.qm" SetOutPath "$INSTDIR\locale\zh_CN\LC_MESSAGES" File "/oname=mkvtoolnix.mo" "po\zh_CN.mo" SetOutPath "$INSTDIR\locale\zh_TW\LC_MESSAGES" @@ -295,6 +289,14 @@ Section "Program files" SEC01 Delete "$INSTDIR\doc\nl\mmg.html" Delete "$INSTDIR\doc\uk\mmg.html" Delete "$INSTDIR\doc\zh_CN\mmg.html" + Delete "$INSTDIR\locale\cs\LC_MESSAGES\qtbase.qm" + Delete "$INSTDIR\locale\de\LC_MESSAGES\qtbase.qm" + Delete "$INSTDIR\locale\fr\LC_MESSAGES\qtbase.qm" + Delete "$INSTDIR\locale\it\LC_MESSAGES\qtbase.qm" + Delete "$INSTDIR\locale\ja\LC_MESSAGES\qtbase.qm" + Delete "$INSTDIR\locale\pl\LC_MESSAGES\qtbase.qm" + Delete "$INSTDIR\locale\ru\LC_MESSAGES\qtbase.qm" + Delete "$INSTDIR\locale\uk\LC_MESSAGES\qtbase.qm" Delete "$INSTDIR\locale\ca\LC_MESSAGES\wxstd.mo" Delete "$INSTDIR\locale\cs\LC_MESSAGES\wxstd.mo" Delete "$INSTDIR\locale\de\LC_MESSAGES\wxstd.mo" @@ -705,6 +707,9 @@ Section Uninstall RMDir "$INSTDIR\locale\zh\LC_MESSAGES" RMDir "$INSTDIR\locale\zh" + Delete "$INSTDIR\locale\libqt\*.*" + RMDir "$INSTDIR\locale\libqt" + RMDir "$INSTDIR\locale" RMDir "$INSTDIR\data" diff --git a/src/mkvtoolnix-gui/app.cpp b/src/mkvtoolnix-gui/app.cpp index 88f6fa009..13872acfa 100644 --- a/src/mkvtoolnix-gui/app.cpp +++ b/src/mkvtoolnix-gui/app.cpp @@ -262,11 +262,11 @@ App::initializeLocale(QString const &requestedLocale) { m_currentTranslator.reset(); auto translator = std::make_unique(); - auto paths = QStringList{} << Q("%1/locale/%2/LC_MESSAGES").arg(applicationDirPath()).arg(locale) + auto paths = QStringList{} << Q("%1/locale/libqt").arg(applicationDirPath()) << QLibraryInfo::location(QLibraryInfo::TranslationsPath); for (auto const &path : paths) - if (translator->load(Q("qtbase_%1").arg(locale), path)) + if (translator->load(Q("qt_%1").arg(locale), path)) break; installTranslator(translator.get());