From 3e1cb5798835917bd64f34dc52fa1ca44eb4c7b2 Mon Sep 17 00:00:00 2001 From: Stiepen22 Date: Sun, 8 Sep 2013 23:43:19 +0200 Subject: Filed attempt on making localization work --- MultiMC.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'MultiMC.cpp') diff --git a/MultiMC.cpp b/MultiMC.cpp index c93701b8..9cbf4947 100644 --- a/MultiMC.cpp +++ b/MultiMC.cpp @@ -3,6 +3,8 @@ #include #include #include +#include +#include #include "gui/mainwindow.h" #include "logic/lists/InstanceList.h" @@ -224,10 +226,22 @@ int main(int argc, char *argv[]) // initialize Qt MultiMC app(argc, argv); + std::cout << "Loading Language File for " << QLocale::system().name().toLocal8Bit().constData() << "..." << std::endl; + + QTranslator qtTranslator; + qtTranslator.load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath)); + app.installTranslator(&qtTranslator); + + QTranslator mmcTranslator; + mmcTranslator.load("mmc_" + QLocale::system().name()); + app.installTranslator(&mmcTranslator); + // show main window MainWindow mainWin; mainWin.show(); + + switch(app.status()) { case MultiMC::Initialized: -- cgit v1.2.3 From ec6215a9456dfa4523afd34198ffa878343f5f59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Mon, 9 Sep 2013 01:20:17 +0200 Subject: Fix translation initialization (and loading). --- MultiMC.cpp | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 56 insertions(+), 10 deletions(-) (limited to 'MultiMC.cpp') diff --git a/MultiMC.cpp b/MultiMC.cpp index 9cbf4947..b49773a1 100644 --- a/MultiMC.cpp +++ b/MultiMC.cpp @@ -27,6 +27,8 @@ MultiMC::MultiMC ( int& argc, char** argv ) setOrganizationName("Forkk"); setApplicationName("MultiMC 5"); + initTranslations(); + // Print app header std::cout << "MultiMC 5" << std::endl; std::cout << "(c) 2013 MultiMC Contributors" << std::endl << std::endl; @@ -144,10 +146,64 @@ MultiMC::MultiMC ( int& argc, char** argv ) MultiMC::~MultiMC() { + if(m_mmc_translator) + { + removeTranslator(m_mmc_translator); + delete m_mmc_translator; + m_mmc_translator = nullptr; + } + if(m_qt_translator) + { + removeTranslator(m_qt_translator); + delete m_qt_translator; + m_qt_translator = nullptr; + } delete m_settings; delete m_metacache; } +void MultiMC::initTranslations() +{ + m_qt_translator = new QTranslator(); + if(m_qt_translator->load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath))) + { + std::cout + << "Loading Qt Language File for " + << QLocale::system().name().toLocal8Bit().constData() + << "..."; + if(!installTranslator(m_qt_translator)) + { + std::cout << " failed."; + } + std::cout << std::endl; + } + else + { + delete m_qt_translator; + m_qt_translator = nullptr; + } + + m_mmc_translator = new QTranslator(); + if(m_mmc_translator->load("mmc_" + QLocale::system().name(), QDir("translations").absolutePath())) + { + std::cout + << "Loading MMC Language File for " + << QLocale::system().name().toLocal8Bit().constData() + << "..."; + if(!installTranslator(m_mmc_translator)) + { + std::cout << " failed."; + } + std::cout << std::endl; + } + else + { + delete m_mmc_translator; + m_mmc_translator = nullptr; + } +} + + void MultiMC::initGlobalSettings() { m_settings = new INISettingsObject("multimc.cfg", this); @@ -226,16 +282,6 @@ int main(int argc, char *argv[]) // initialize Qt MultiMC app(argc, argv); - std::cout << "Loading Language File for " << QLocale::system().name().toLocal8Bit().constData() << "..." << std::endl; - - QTranslator qtTranslator; - qtTranslator.load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath)); - app.installTranslator(&qtTranslator); - - QTranslator mmcTranslator; - mmcTranslator.load("mmc_" + QLocale::system().name()); - app.installTranslator(&mmcTranslator); - // show main window MainWindow mainWin; mainWin.show(); -- cgit v1.2.3