diff --git a/app.qrc b/app.qrc new file mode 100755 index 0000000..1f91577 --- /dev/null +++ b/app.qrc @@ -0,0 +1,7 @@ + + + gta5sync_de.qm + qt_de.qm + qtbase_de.qm + + diff --git a/gta5sync.pro b/gta5sync.pro index bae1f6a..49d7662 100755 --- a/gta5sync.pro +++ b/gta5sync.pro @@ -25,7 +25,7 @@ TARGET = gta5sync TEMPLATE = app -SOURCES += main.cpp\ +SOURCES += main.cpp \ SnapmaticPicture.cpp \ PictureDialog.cpp \ ProfileDatabase.cpp \ @@ -58,10 +58,10 @@ FORMS += \ TRANSLATIONS += \ gta5sync_de.ts -RESOURCES += +RESOURCES += \ + app.qrc OTHER_FILES += \ - gta5sync_de.qm \ app.rc win32: RC_FILE += app.rc diff --git a/main.cpp b/main.cpp index 3586357..6ebe405 100755 --- a/main.cpp +++ b/main.cpp @@ -26,6 +26,7 @@ #include "SavegameData.h" #include #include +#include #include #include #include @@ -38,6 +39,148 @@ int main(int argc, char *argv[]) a.setApplicationName("gta5sync"); a.setApplicationVersion("1.0.0"); + QSettings settings("Syping Gaming Team", "gtasync"); + settings.beginGroup("Interface"); + QString language = settings.value("Language","System").toString(); + settings.endGroup(); + + // Translate pre values + bool trsf = false; + bool svlp = false; + + // Start internal translate loading + QTranslator appTranslator; + if (language == "System" || language.trimmed() == "") + { + QString languageName = QLocale::system().name(); + QStringList langList = languageName.split("_"); + if (langList.length() >= 1) + { + if (QFile::exists(":/tr/gta5sync_" + langList.at(0) + ".qm")) + { + if (!appTranslator.load(":/tr/gta5sync_" + langList.at(0) + ".qm")) + { + if (langList.at(0) != "en") + { + if (svlp) {trsf = true;} + } + } + } + else + { + if (langList.at(0) != "en") + { + if (svlp) {trsf = true;} + } + } + } + } + else + { + QString languageName = language; + QStringList langList = languageName.split("_"); + if (langList.length() >= 1) + { + if (QFile::exists(":/tr/gta5sync_" + langList.at(0) + ".qm")) + { + appTranslator.load(":/tr/gta5sync_" + langList.at(0) + ".qm"); + } + } + } + if (trsf) + { + QString languageName = QLocale::system().name(); + QStringList langList = languageName.split("_"); + if (langList.length() >= 1) + { + if (QFile::exists(":/tr/gta5sync_" + langList.at(0) + ".qm")) + { + appTranslator.load(":/tr/gta5sync_" + langList.at(0) + ".qm"); + } + } + } + a.installTranslator(&appTranslator); +#ifdef QT5_MODE + QTranslator qtTranslator1; + if (language == "System" || language.trimmed() == "") + { + QString languageName = QLocale::system().name(); + QStringList langList = languageName.split("_"); + if (langList.length() >= 1) + { + if (QFile::exists(":/tr/qtbase_" + langList.at(0) + ".qm")) + { + qtTranslator1.load(":/tr/qtbase_" + langList.at(0) + ".qm"); + } + } + } + else + { + QString languageName = language; + QStringList langList = languageName.split("_"); + if (langList.length() >= 1) + { + if (QFile::exists(":/tr/qtbase_" + langList.at(0) + ".qm")) + { + qtTranslator1.load(":/tr/qtbase_" + langList.at(0) + ".qm"); + } + } + } + if (trsf) + { + QString languageName = QLocale::system().name(); + QStringList langList = languageName.split("_"); + if (langList.length() >= 1) + { + if (QFile::exists(":/tr/qtbase_" + langList.at(0) + ".qm")) + { + qtTranslator1.load(":/tr/qtbase_" + langList.at(0) + ".qm"); + } + } + } + a.installTranslator(&qtTranslator1); +#else + QTranslator qtTranslator1; + if (language == "System" || language.trimmed() == "") + { + QString languageName = QLocale::system().name(); + QStringList langList = languageName.split("_"); + if (langList.length() >= 1) + { + if (QFile::exists(":/tr/qt_" + langList.at(0) + ".qm")) + { + qtTranslator1.load(":/tr/qt_" + langList.at(0) + ".qm"); + } + } + } + else + { + QString languageName = language; + QStringList langList = languageName.split("_"); + if (langList.length() >= 1) + { + if (QFile::exists(":/tr/qt_" + langList.at(0) + ".qm")) + { + qtTranslator1.load(":/tr/qt_" + langList.at(0) + ".qm"); + } + } + } + if (trsf) + { + QString languageName = QLocale::system().name(); + QStringList langList = languageName.split("_"); + if (langList.length() >= 1) + { + if (QFile::exists(":/tr/qt_" + langList.at(0) + ".qm")) + { + qtTranslator1.load(":/tr/qt_" + langList.at(0) + ".qm"); + } + } + } + a.installTranslator(&qtTranslator1); +#endif + // End internal translate loading + QStringList applicationArgs = a.arguments(); QString selectedAction; QString arg1; @@ -131,3 +274,4 @@ int main(int argc, char *argv[]) return a.exec(); } + diff --git a/qt_de.qm b/qt_de.qm new file mode 100755 index 0000000..113bbcc Binary files /dev/null and b/qt_de.qm differ diff --git a/qtbase_de.qm b/qtbase_de.qm new file mode 100755 index 0000000..ed026f9 Binary files /dev/null and b/qtbase_de.qm differ