qmapshack: fix localization

+84 -2
+10 -2
pkgs/applications/gis/qmapshack/default.nix
··· 1 - { mkDerivation, lib, fetchFromGitHub, cmake 2 - , qtscript, qtwebengine, gdal, proj, routino, quazip }: 1 + { mkDerivation, lib, fetchFromGitHub, cmake, substituteAll 2 + , qtscript, qttranslations, qtwebengine, gdal, proj, routino, quazip }: 3 3 4 4 mkDerivation rec { 5 5 pname = "qmapshack"; ··· 11 11 rev = "V_${version}"; 12 12 sha256 = "1yzgkdjxwyg8ggbxyjwr0zjrx99ckrbz2p2524iii9i7qqn8wfsx"; 13 13 }; 14 + 15 + patches = [ 16 + # See https://github.com/NixOS/nixpkgs/issues/86054 17 + (substituteAll { 18 + src = ./fix-qttranslations-path.patch; 19 + inherit qttranslations; 20 + }) 21 + ]; 14 22 15 23 nativeBuildInputs = [ cmake ]; 16 24
+74
pkgs/applications/gis/qmapshack/fix-qttranslations-path.patch
··· 1 + diff --git i/src/qmapshack/setup/CAppSetupLinux.cpp w/src/qmapshack/setup/CAppSetupLinux.cpp 2 + index 63ea06c0..3a03b816 100644 3 + --- i/src/qmapshack/setup/CAppSetupLinux.cpp 4 + +++ w/src/qmapshack/setup/CAppSetupLinux.cpp 5 + @@ -30,7 +30,7 @@ void CAppSetupLinux::initQMapShack() 6 + prepareGdal("", ""); 7 + 8 + // setup translators 9 + - QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath); 10 + + QLatin1String resourceDir = QLatin1String("@qttranslations@/translations"); 11 + QString translationPath = QCoreApplication::applicationDirPath(); 12 + translationPath.replace(QRegExp("bin$"), "share/qmapshack/translations"); 13 + prepareTranslator(resourceDir, "qt_"); 14 + diff --git i/src/qmapshack/setup/CAppSetupMac.cpp w/src/qmapshack/setup/CAppSetupMac.cpp 15 + index ad9b21e9..9dca8a1e 100644 16 + --- i/src/qmapshack/setup/CAppSetupMac.cpp 17 + +++ w/src/qmapshack/setup/CAppSetupMac.cpp 18 + @@ -63,7 +63,7 @@ void CAppSetupMac::initQMapShack() 19 + 20 + // setup translators 21 + QString translationPath = getApplicationDir(relTranslationDir).absolutePath(); 22 + - prepareTranslator(translationPath, "qt_"); 23 + + prepareTranslator(QLatin1String("@qttranslations@/translations"), "qt_"); 24 + prepareTranslator(translationPath, "qmapshack_"); 25 + 26 + // load and apply style sheet 27 + diff --git i/src/qmaptool/setup/CAppSetupLinux.cpp w/src/qmaptool/setup/CAppSetupLinux.cpp 28 + index dea1c4f3..8da95574 100644 29 + --- i/src/qmaptool/setup/CAppSetupLinux.cpp 30 + +++ w/src/qmaptool/setup/CAppSetupLinux.cpp 31 + @@ -29,7 +29,7 @@ void CAppSetupLinux::initQMapTool() 32 + prepareGdal("", ""); 33 + 34 + // setup translators 35 + - QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath); 36 + + QLatin1String resourceDir = QLatin1String("@qttranslations@/translations"); 37 + QString translationPath = QCoreApplication::applicationDirPath(); 38 + translationPath.replace(QRegExp("bin$"), "share/qmaptool/translations"); 39 + prepareTranslator(resourceDir, "qt_"); 40 + diff --git i/src/qmaptool/setup/CAppSetupMac.cpp w/src/qmaptool/setup/CAppSetupMac.cpp 41 + index 02b27e07..fae27748 100644 42 + --- i/src/qmaptool/setup/CAppSetupMac.cpp 43 + +++ w/src/qmaptool/setup/CAppSetupMac.cpp 44 + @@ -64,7 +64,7 @@ void CAppSetupMac::initQMapTool() 45 + 46 + // setup translators 47 + QString translationPath = getApplicationDir(relTranslationDir).absolutePath(); 48 + - prepareTranslator(translationPath, "qt_"); 49 + + prepareTranslator(QLatin1String("@qttranslations@/translations"), "qt_"); 50 + prepareTranslator(translationPath, "qmaptool_"); 51 + 52 + migrateDirContent(defaultCachePath()); 53 + diff --git i/src/qmt_rgb2pct/main.cpp w/src/qmt_rgb2pct/main.cpp 54 + index 21267d03..d539cec8 100644 55 + --- i/src/qmt_rgb2pct/main.cpp 56 + +++ w/src/qmt_rgb2pct/main.cpp 57 + @@ -50,7 +50,7 @@ static void prepareTranslator(QString translationPath, QString translationPrefix 58 + static void loadTranslations() 59 + { 60 + #if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) || defined(__FreeBSD_kernel__) || defined(__GNU__) || defined(Q_OS_CYGWIN) 61 + - QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath); 62 + + QLatin1String resourceDir = QLatin1String("@qttranslations@/translations"); 63 + QString translationPath = QCoreApplication::applicationDirPath(); 64 + translationPath.replace(QRegExp("bin$"), "share/" APP_STR "/translations"); 65 + prepareTranslator(resourceDir, "qt_"); 66 + @@ -61,7 +61,7 @@ static void loadTranslations() 67 + // os x 68 + static QString relTranslationDir = "Resources/translations"; // app 69 + QString translationPath = getApplicationDir(relTranslationDir).absolutePath(); 70 + - prepareTranslator(translationPath, "qt_"); 71 + + prepareTranslator(QLatin1String("@qttranslations@/translations"), "qt_"); 72 + prepareTranslator(translationPath, APP_STR "_"); 73 + #endif 74 +