#include #include #include #include #include #include #include #include #include "transload.h" TransLoad::TransLoad(QObject *parent) : QObject(parent) { activeLang = ""; if(deftrans.load("TR-en_EN.qm", langpath)) { qApp->installTranslator(&deftrans); QLocale curLocale("en_EN"); QLocale::setDefault(curLocale); } reloadTimeZone(); monthNames.clear(); dayNames.clear(); } void TransLoad::reloadTimeZone() { QList timezones; timeZoneIds.clear(); timezones = QTimeZone::availableTimeZoneIds(); foreach (QByteArray zone, timezones) { //QTimeZone tz(zone); //qDebug() << zone << "::" << tz.country() << " " << tz.DefaultName << " " << tz.comment(); timeZoneIds.append(zone); } QByteArray systemTimezone = QTimeZone::systemTimeZoneId(); systemTimeZoneId = systemTimezone; } // ------------------------------------------------------------------------------------- // ASSERT: // lang is rest of filename usually TR_??.qm wher ?? is for 2 cahr country information void TransLoad::selectLanguage(QString lang) { QString sel_locale; if(!trans.isEmpty()) qApp->removeTranslator(&trans); if(trans.load("TR-" + lang + ".qm", langpath)) { qDebug() <<"Loaded :: " << lang; qApp->installTranslator(&trans); activeLang = lang; QLocale curLocale(lang); QLocale::setDefault(curLocale); sel_locale = lang; } else { qDebug() << "COULD NOT load lang :: " << lang; activeLang = ""; QLocale curLocale("en_EN"); QLocale::setDefault(curLocale); sel_locale = "en_EN"; } // 0: Januar QLocale curLocale(lang); monthNames.clear(); for (int i = 1; i <= 12; i++) { QString month = curLocale.standaloneMonthName(i, QLocale::LongFormat); monthNames.append(month); } // 0: Sonntag !! dayNames.clear(); QString day = curLocale.standaloneDayName(7, QLocale::LongFormat); dayNames.append(day); for (int i = 1; i <= 6; i++) { QString day = curLocale.standaloneDayName(i, QLocale::LongFormat); dayNames.append(day); } QString dateTimeFormat = curLocale.dateTimeFormat(QLocale::ShortFormat); qDebug() << dateTimeFormat; emit languageChanged(); } // search all FLAGS and extract Languages // return list of avail Languages QStringList TransLoad::getLanguages(void) { QDir dir; dir.setPath(langpath); QStringList filters; filters << "FLAG-*.svg"; QStringList flags; flags = dir.entryList(filters); QStringList languages; foreach (QString flag, flags) { QString lang = flag.split("-").at(1); languages.append(lang.split(".").at(0)); } return languages; } QString TransLoad::getActiveLanguage(void) { return activeLang; } QStringList TransLoad::getTimeZoneIds(void){ return timeZoneIds; } QString TransLoad::getSystemTimeZoneId(void){ return systemTimeZoneId; } QStringList TransLoad::getMonthNames(void){ return monthNames; } QStringList TransLoad::getDayNames(void){ return dayNames; } // ------------------------------------------------------------------------------------- //for getting signal on changed translation QString TransLoad::getEmptyString(){ return ""; }