git.iko.soy/typeable/nixpkgs
on master help sign in
Merge pull request #145470 from sikmir/qmapshack

qmapshack: fix localization

commitf529b6f9545313e0f8c8b8fbd358b7d414f9b44c authorRobert Schütz <nix@dotlambda.de> dateFri 12 Nov 2021, 07:08 (5 years ago) parent2ffe7425fe151d
2 files changed+84−2
pkgs/applications/gis/qmapshack/default.nix+10−2 pkgs/applications/gis/qmapshack/fix-qttranslations-path.patch+74
pkgs/applications/gis/qmapshack/default.nix+10−2
@@ -1,5 +1,5 @@
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 }:
33
44mkDerivation rec {
55 pname = "qmapshack";
@@ -12,6 +12,14 @@ mkDerivation rec {
1212 sha256 = "1yzgkdjxwyg8ggbxyjwr0zjrx99ckrbz2p2524iii9i7qqn8wfsx";
1313 };
1414
15+ patches = [
16+ # See https://github.com/NixOS/nixpkgs/issues/86054
17+ (substituteAll {
18+ src = ./fix-qttranslations-path.patch;
19+ inherit qttranslations;
20+ })
21+ ];
22+
1523 nativeBuildInputs = [ cmake ];
1624
1725 buildInputs = [ qtscript qtwebengine gdal proj routino quazip ];
pkgs/applications/gis/qmapshack/fix-qttranslations-path.patchnew file+74
@@ -0,0 +1,74 @@
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+