aboutsummaryrefslogtreecommitdiff
path: root/TranslationManager.cpp
diff options
context:
space:
mode:
authorGuillaume LE VAILLANT <glv@posteo.net>2018-04-23 13:51:11 +0200
committerGuillaume LE VAILLANT <glv@posteo.net>2018-04-23 13:56:12 +0200
commitcfc6abcfdc72ade22d3068e2dee4be04d624f1a6 (patch)
tree90d7962651a9364dd9f2369cc2cf22451d97850e /TranslationManager.cpp
parent5a5d92e6f64a85b251c89bf95e1ffc5dc438f089 (diff)
downloadmonzero-gui-cfc6abcfdc72ade22d3068e2dee4be04d624f1a6.tar.gz
monzero-gui-cfc6abcfdc72ade22d3068e2dee4be04d624f1a6.tar.xz
monzero-gui-cfc6abcfdc72ade22d3068e2dee4be04d624f1a6.zip
Embed the translation files in the monero-wallet-gui binary
If a translation file exists in a "translations" directory located in the same directory as the binary, it is used in priority (this can be useful when working on translations as you don't have to recompile the whole program all the time), and if no such file is found the embedded translation file is used.
Diffstat (limited to 'TranslationManager.cpp')
-rw-r--r--TranslationManager.cpp30
1 files changed, 18 insertions, 12 deletions
diff --git a/TranslationManager.cpp b/TranslationManager.cpp
index fa39d35a..e7fc52aa 100644
--- a/TranslationManager.cpp
+++ b/TranslationManager.cpp
@@ -25,19 +25,12 @@ bool TranslationManager::setLanguage(const QString &language)
return true;
}
- // translations are compiled into app binary
-#ifdef Q_OS_MACX
- QString dir = qApp->applicationDirPath() + "/../Resources/translations";
-#else
QString dir = qApp->applicationDirPath() + "/translations";
-#endif
-
QString filename = "monero-core_" + language;
- qDebug("%s: loading translation file '%s' from '%s",
+ qDebug("%s: loading translation file '%s' from '%s'",
__FUNCTION__, qPrintable(filename), qPrintable(dir));
-
if (m_translator->load(filename, dir)) {
qDebug("%s: translation for language '%s' loaded successfully",
__FUNCTION__, qPrintable(language));
@@ -45,11 +38,24 @@ bool TranslationManager::setLanguage(const QString &language)
qApp->installTranslator(m_translator);
emit languageChanged();
return true;
- } else {
- qCritical("%s: error loading translation for language '%s'",
- __FUNCTION__, qPrintable(language));
- return false;
}
+
+ qDebug("%s: couldn't load translation file '%s' from '%s'",
+ __FUNCTION__, qPrintable(filename), qPrintable(dir));
+ qDebug("%s: loading embedded translation file '%s'",
+ __FUNCTION__, qPrintable(filename));
+
+ if (m_translator->load(filename, ":")) {
+ qDebug("%s: embedded translation for language '%s' loaded successfully",
+ __FUNCTION__, qPrintable(language));
+ qApp->installTranslator(m_translator);
+ emit languageChanged();
+ return true;
+ }
+
+ qCritical("%s: error loading translation for language '%s'",
+ __FUNCTION__, qPrintable(language));
+ return false;
}
TranslationManager *TranslationManager::instance()