Skip to content

Commit eef18ef

Browse files
committed
Fix translation generation on Linux.
1 parent 2fd77ef commit eef18ef

File tree

3 files changed

+38
-4
lines changed

3 files changed

+38
-4
lines changed

Distribution.pri

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ linux {
1111
installer.depends = distribution
1212

1313
# Remove previous bundle
14-
i18n.commands += test -d dist && rm -rf dist;
14+
i18n.commands += test -d $${DIST_DIR} && rm -rf $${DIST_DIR};
1515
i18n.commands += mkdir dist;
1616
i18n.commands += mkdir $${DIST_DIR}/translations;
1717
i18n.commands += lrelease \"$$PWD/src/translations/screenie_de.ts\" -qm $${DIST_DIR}/translations/screenie_de.qm;
18-
i18n.commands += cp $$[QT_INSTALL_TRANSLATIONS]/qtbase_de.qm $${DIST_DIR}/translations/qtbase_de.qm
18+
!linux {
19+
i18n.commands += test -f $$[QT_INSTALL_TRANSLATIONS]/qtbase_de.qm && cp $$[QT_INSTALL_TRANSLATIONS]/qtbase_de.qm $${DIST_DIR}/translations/qtbase_de.qm;
20+
}
1921
i18n.depends = all
2022

2123
distribution.depends = i18n

Distribution_Linux.pri

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
include (src/Common.pri)
2+
3+
CONFIG(debug, debug|release) {
4+
BIN_DIR = ./bin/debug
5+
message(Distributing $$APP_NAME in DEBUG mode)
6+
} else {
7+
BIN_DIR = ./bin/release
8+
message(Distributing $$APP_NAME in RELEASE mode)
9+
}
10+
11+
DIST_DIR = ./dist
12+
13+
#
14+
# Distribution
15+
#
16+
17+
distribution.commands += @echo Making distribution for Linux;
18+
19+
# Copy compiled binaries
20+
distribution.commands += cp -R $${BIN_DIR}/* ./$${DIST_DIR};

src/Screenie/src/Main.cpp

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,22 +40,34 @@ int main(int argc, char *argv[])
4040
QCoreApplication::setApplicationVersion(Version::getApplicationVersion());
4141

4242
qRegisterMetaType<ScreenieModelInterface::ReflectionMode>();
43-
4443
#ifdef Q_OS_WIN
4544
// On Windows prefer INI format over Registry (= NativeFormat)
4645
QSettings::setDefaultFormat(QSettings::IniFormat);
4746
#endif
4847

4948
ScreenieApplication app(argc, argv);
49+
#ifdef Q_OS_WIN
50+
QString appTranslationPath = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
51+
#elif defined Q_OS_LINUX
52+
QString appTranslationPath = QCoreApplication::applicationDirPath() + "/translations";
53+
#elif defined Q_OS_MAC
54+
QString appTranslationPath = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
55+
#else
56+
QString appTranslationPath = QCoreApplication::applicationDirPath() + "/translations";
57+
#endif
5058

5159
QTranslator qtTranslator;
5260
qtTranslator.load(QLocale::system(), "qtbase", "_", QLibraryInfo::location(QLibraryInfo::TranslationsPath));
5361
app.installTranslator(&qtTranslator);
5462

5563
QTranslator appTranslator;
56-
appTranslator.load(QLocale::system(), "screenie", "_", QLibraryInfo::location(QLibraryInfo::TranslationsPath));
64+
appTranslator.load(QLocale::system(), "screenie", "_", appTranslationPath);
5765
app.installTranslator(&appTranslator);
5866

67+
#ifdef DEBUG
68+
qDebug("System LOCALE: %s, app translation path: %s, Qt translation path: %s", qPrintable(QLocale::system().name()), qPrintable(appTranslationPath), qPrintable(QLibraryInfo::location(QLibraryInfo::TranslationsPath)));
69+
#endif
70+
5971
#ifdef Q_OS_MAC
6072
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
6173
#endif

0 commit comments

Comments
 (0)