summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MultiMC.cpp15
-rw-r--r--MultiMC.h6
-rw-r--r--gui/dialogs/SettingsDialog.cpp4
-rw-r--r--translations/CMakeLists.txt2
4 files changed, 23 insertions, 4 deletions
diff --git a/MultiMC.cpp b/MultiMC.cpp
index a0ff8b66..41c81b7b 100644
--- a/MultiMC.cpp
+++ b/MultiMC.cpp
@@ -161,6 +161,17 @@ MultiMC::MultiMC(int &argc, char **argv, bool root_override)
#endif
}
+ // static data paths... mostly just for translations
+ #ifdef Q_OS_LINUX
+ QDir foo(PathCombine(binPath, ".."));
+ staticDataPath = foo.absolutePath();
+ #elif defined(Q_OS_WIN32)
+ staticDataPath = binPath;
+ #elif defined(Q_OS_MAC)
+ QDir foo(PathCombine(rootPath, "Contents/Resources"));
+ staticDataPath = foo.absolutePath();
+ #endif
+
// init the logger
initLogger();
@@ -179,6 +190,7 @@ MultiMC::MultiMC(int &argc, char **argv, bool root_override)
}
QLOG_INFO() << "Binary path : " << binPath;
QLOG_INFO() << "Application root path : " << rootPath;
+ QLOG_INFO() << "Static data path : " << staticDataPath;
// load settings
initGlobalSettings();
@@ -287,7 +299,8 @@ void MultiMC::initTranslations()
}
m_mmc_translator.reset(new QTranslator());
- if (m_mmc_translator->load("mmc_" + locale.bcp47Name(), MMC->root() + "/translations"))
+ if (m_mmc_translator->load("mmc_" + locale.bcp47Name(),
+ MMC->staticData() + "/translations"))
{
QLOG_DEBUG() << "Loading MMC Language File for"
<< locale.bcp47Name().toLocal8Bit().constData() << "...";
diff --git a/MultiMC.h b/MultiMC.h
index cb37b1e6..00eb97f8 100644
--- a/MultiMC.h
+++ b/MultiMC.h
@@ -147,6 +147,11 @@ public:
*/
bool openJsonEditor(const QString &filename);
+ /// this is the static data. it stores things that don't move.
+ const QString &staticData()
+ {
+ return staticDataPath;
+ }
/// this is the root of the 'installation'. Used for automatic updates
const QString &root()
{
@@ -215,6 +220,7 @@ private:
UpdateFlags m_updateOnExitFlags = None;
QString rootPath;
+ QString staticDataPath;
QString binPath;
QString dataPath;
QString origcwdPath;
diff --git a/gui/dialogs/SettingsDialog.cpp b/gui/dialogs/SettingsDialog.cpp
index 7ec48336..2dd19077 100644
--- a/gui/dialogs/SettingsDialog.cpp
+++ b/gui/dialogs/SettingsDialog.cpp
@@ -407,8 +407,8 @@ void SettingsDialog::loadSettings(SettingsObject *s)
// Language
ui->languageBox->clear();
ui->languageBox->addItem(tr("English"), QLocale(QLocale::English));
- foreach(const QString & lang,
- QDir(MMC->root() + "/translations").entryList(QStringList() << "*.qm", QDir::Files))
+ foreach(const QString & lang, QDir(MMC->staticData() + "/translations")
+ .entryList(QStringList() << "*.qm", QDir::Files))
{
QLocale locale(lang.section(QRegExp("[_\.]"), 1));
ui->languageBox->addItem(QLocale::languageToString(locale.language()), locale);
diff --git a/translations/CMakeLists.txt b/translations/CMakeLists.txt
index d28a997d..c5ae65a6 100644
--- a/translations/CMakeLists.txt
+++ b/translations/CMakeLists.txt
@@ -10,7 +10,7 @@ add_custom_target(translations_update DEPENDS ${TRANSLATION_MESSAGES})
add_custom_target(translations DEPENDS ${TRANSLATION_QM})
if(APPLE AND UNIX) ## OSX
- install(FILES ${TRANSLATION_QM} DESTINATION MultiMC.app/Contents/MacOS/translations)
+ install(FILES ${TRANSLATION_QM} DESTINATION MultiMC.app/Contents/Resources/translations)
else()
install(FILES ${TRANSLATION_QM} DESTINATION translations)
endif()