transload.cpp 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. #include <QDebug>
  2. #include <QObject>
  3. #include <QLocale>
  4. #include <QTranslator>
  5. #include <QGuiApplication>
  6. #include <QDir>
  7. #include <QTimeZone>
  8. #include <QDate>
  9. #include "transload.h"
  10. TransLoad::TransLoad(QObject *parent) : QObject(parent)
  11. {
  12. activeLang = "";
  13. if(deftrans.load("TR-en_EN.qm", langpath)) {
  14. qApp->installTranslator(&deftrans);
  15. QLocale curLocale("en_EN");
  16. QLocale::setDefault(curLocale);
  17. }
  18. reloadTimeZone();
  19. monthNames.clear();
  20. dayNames.clear();
  21. }
  22. void TransLoad::reloadTimeZone()
  23. {
  24. QList<QByteArray> timezones;
  25. timeZoneIds.clear();
  26. timezones = QTimeZone::availableTimeZoneIds();
  27. foreach (QByteArray zone, timezones) {
  28. //QTimeZone tz(zone);
  29. //qDebug() << zone << "::" << tz.country() << " " << tz.DefaultName << " " << tz.comment();
  30. timeZoneIds.append(zone);
  31. }
  32. QByteArray systemTimezone = QTimeZone::systemTimeZoneId();
  33. systemTimeZoneId = systemTimezone;
  34. }
  35. // -------------------------------------------------------------------------------------
  36. // ASSERT:
  37. // lang is rest of filename usually TR_??.qm wher ?? is for 2 cahr country information
  38. void TransLoad::selectLanguage(QString lang)
  39. {
  40. QString sel_locale;
  41. if(!trans.isEmpty())
  42. qApp->removeTranslator(&trans);
  43. if(trans.load("TR-" + lang + ".qm", langpath)) {
  44. qDebug() <<"Loaded :: " << lang;
  45. qApp->installTranslator(&trans);
  46. activeLang = lang;
  47. QLocale curLocale(lang);
  48. QLocale::setDefault(curLocale);
  49. sel_locale = lang;
  50. } else {
  51. qDebug() << "COULD NOT load lang :: " << lang;
  52. activeLang = "";
  53. QLocale curLocale("en_EN");
  54. QLocale::setDefault(curLocale);
  55. sel_locale = "en_EN";
  56. }
  57. // 0: Januar
  58. QLocale curLocale(lang);
  59. monthNames.clear();
  60. for (int i = 1; i <= 12; i++) {
  61. QString month = curLocale.standaloneMonthName(i, QLocale::LongFormat);
  62. monthNames.append(month);
  63. }
  64. // 0: Sonntag !!
  65. dayNames.clear();
  66. QString day = curLocale.standaloneDayName(7, QLocale::LongFormat);
  67. dayNames.append(day);
  68. for (int i = 1; i <= 6; i++) {
  69. QString day = curLocale.standaloneDayName(i, QLocale::LongFormat);
  70. dayNames.append(day);
  71. }
  72. QString dateTimeFormat = curLocale.dateTimeFormat(QLocale::ShortFormat);
  73. qDebug() << dateTimeFormat;
  74. emit languageChanged();
  75. }
  76. // search all FLAGS and extract Languages
  77. // return list of avail Languages
  78. QStringList TransLoad::getLanguages(void) {
  79. QDir dir;
  80. dir.setPath(langpath);
  81. QStringList filters;
  82. filters << "FLAG-*.svg";
  83. QStringList flags;
  84. flags = dir.entryList(filters);
  85. QStringList languages;
  86. foreach (QString flag, flags) {
  87. QString lang = flag.split("-").at(1);
  88. languages.append(lang.split(".").at(0));
  89. }
  90. return languages;
  91. }
  92. QString TransLoad::getActiveLanguage(void) {
  93. return activeLang;
  94. }
  95. QStringList TransLoad::getTimeZoneIds(void){
  96. return timeZoneIds;
  97. }
  98. QString TransLoad::getSystemTimeZoneId(void){
  99. return systemTimeZoneId;
  100. }
  101. QStringList TransLoad::getMonthNames(void){
  102. return monthNames;
  103. }
  104. QStringList TransLoad::getDayNames(void){
  105. return dayNames;
  106. }
  107. // -------------------------------------------------------------------------------------
  108. //for getting signal on changed translation
  109. QString TransLoad::getEmptyString(){
  110. return "";
  111. }