123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- #include <QDebug>
- #include <QObject>
- #include <QLocale>
- #include <QTranslator>
- #include <QGuiApplication>
- #include <QDir>
- #include <QTimeZone>
- #include <QDate>
- #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<QByteArray> 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 "";
- }
|