mirror of
https://gitlab.com/mbunkus/mkvtoolnix.git
synced 2025-02-26 08:22:31 +00:00
GUI: load qt_<lang>.qm instead of qtbase_<lang>.qm; load from single directory
The translation files for several languages aren't split up into qtbase.qm, qtscript.qm etc. They use a single monolithic qt.qm instead of the meta catalog qt.qm that e.g. the German translation uses. In order to prevent having to special-case in the source code always load the qt.qm instead. Such meta catalogs look for the file names including the language, though. So while loading qt_de.qm Qt will look for qtbase_de.qm. Therefore store the qm files in <installdir>/locale/libqt instead of <installdir>/locale/<lang>/LC_MESSAGES on Windows.
This commit is contained in:
parent
b015a30777
commit
1478d36b84
@ -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"
|
||||
|
||||
|
@ -262,11 +262,11 @@ App::initializeLocale(QString const &requestedLocale) {
|
||||
m_currentTranslator.reset();
|
||||
|
||||
auto translator = std::make_unique<QTranslator>();
|
||||
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());
|
||||
|
Loading…
Reference in New Issue
Block a user