diff options
Diffstat (limited to 'Swift/QtUI/main.cpp')
-rw-r--r-- | Swift/QtUI/main.cpp | 48 |
1 files changed, 33 insertions, 15 deletions
diff --git a/Swift/QtUI/main.cpp b/Swift/QtUI/main.cpp index fc3bf15..d734713 100644 --- a/Swift/QtUI/main.cpp +++ b/Swift/QtUI/main.cpp @@ -20,4 +20,7 @@ #include <Swift/Controllers/BuildVersion.h> #include <SwifTools/Application/PlatformApplicationPathProvider.h> +#include <SwifTools/CrashReporter.h> +#include <stdlib.h> +#include <Swiften/Base/Path.h> #include "QtSwift.h" @@ -28,21 +31,11 @@ int main(int argc, char* argv[]) { QApplication app(argc, argv); - QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); + Swift::PlatformApplicationPathProvider applicationPathProvider(SWIFT_APPLICATION_NAME); - // Translation - QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); - boost::filesystem::path someTranslationPath = Swift::PlatformApplicationPathProvider(SWIFT_APPLICATION_NAME).getResourcePath("/translations/swift_en.qm"); - QTranslator qtTranslator; - if (!someTranslationPath.empty()) { -#if QT_VERSION >= 0x040800 - qtTranslator.load(QLocale::system(), QString(SWIFT_APPLICATION_NAME).toLower(), "_", someTranslationPath.parent_path().string().c_str()); -#else - //std::cout << "Loading " << std::string(QLocale::system().name().toUtf8()) << std::endl; - qtTranslator.load(QString(SWIFT_APPLICATION_NAME).toLower() + "_" + QLocale::system().name(), someTranslationPath.parent_path().string().c_str()); + Swift::CrashReporter crashReporter(applicationPathProvider.getDataDir() / "crashes"); + +#if QT_VERSION < 0x050000 + QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); #endif - } - app.installTranslator(&qtTranslator); - QtTranslator swiftTranslator; - Swift::Translator::setInstance(&swiftTranslator); // Parse program options @@ -72,4 +65,29 @@ int main(int argc, char* argv[]) { } + // Translation +#if QT_VERSION < 0x050000 + QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); +#endif + boost::filesystem::path someTranslationPath = applicationPathProvider.getResourcePath("/translations/swift_en.qm"); + + QTranslator qtTranslator; + if (!someTranslationPath.empty()) { +#if QT_VERSION >= 0x040800 + if (vm.count("language") > 0) { + qtTranslator.load(QString(SWIFT_APPLICATION_NAME).toLower() + "_" + P2QSTRING(vm["language"].as<std::string>()), P2QSTRING(Swift::pathToString(someTranslationPath.parent_path()))); + } + else { + qtTranslator.load(QLocale::system(), QString(SWIFT_APPLICATION_NAME).toLower(), "_", P2QSTRING(Swift::pathToString(someTranslationPath))); + } +#else + //std::cout << "Loading " << std::string(QLocale::system().name().toUtf8()) << std::endl; + qtTranslator.load(QString(SWIFT_APPLICATION_NAME).toLower() + "_" + QLocale::system().name(), P2QSTRING(Swift::pathToString(someTranslationPath))); +#endif + } + app.installTranslator(&qtTranslator); + QtTranslator swiftTranslator; + Swift::Translator::setInstance(&swiftTranslator); + + Swift::QtSwift swift(vm); int result = app.exec(); |