QtLingo 1
QtLingo is an Application to make Qt Computer Translations easier
MyLanguageModel.cpp
Go to the documentation of this file.
1
8#include "MyLanguageModel.h"
9
13#ifdef MY_QML
14MyLanguageModel::MyLanguageModel(QQmlEngine &thisQmlEngine, QObject *parent) : QAbstractListModel(parent), myEngine(thisQmlEngine)
15#else
16MyLanguageModel::MyLanguageModel(QObject *parent) : QAbstractListModel(parent)
17#endif
18{
19 // Orgization Settings for INI files and Local Storage
20 mySetting = new MyOrgSettings(qApp);
21}
22
27{
28 myItems.clear();
29 if (myTranslator != nullptr )
30 {
31 if (!myTranslator->isEmpty())
32 {
33 qApp->removeTranslator(myTranslator);
34 }
35 }
36}
37
41void MyLanguageModel::addItem(const QString &thisName, const QString &thisNameTranslated)
42{
43 mySetting->setMessage("add Item", QString("addItem(%1, %2)").arg(thisName, thisNameTranslated), MyOrgSettings::MyMessageTypes::Debug);
44 addItem(MyLanguageData(thisName, thisNameTranslated));
45}
46
51{
52 mySetting->setMessage("add Item", QString("addItem(%1, %2)").arg(thisItem.name(), thisItem.nameTranslated()), MyOrgSettings::MyMessageTypes::Debug);
53 beginInsertRows(QModelIndex(), rowCount(), rowCount());
54 myItems << thisItem;
55 endInsertRows();
56}
57
62{
63 mySetting->setMessage("remove Item", QString("removeItem(%1)").arg(thisRow), MyOrgSettings::MyMessageTypes::Debug);
64 beginRemoveRows(QModelIndex(), thisRow, thisRow);
65 myItems.removeAt(thisRow);
66 removeRow(thisRow, QModelIndex());
67 endRemoveRows();
68}
69
73int MyLanguageModel::rowCount(const QModelIndex &parent) const
74{
75 mySetting->setMessage("row Count", "rowCount", MyOrgSettings::MyMessageTypes::Debug);
76 Q_UNUSED(parent);
77 return myItems.count();
78}
79
83QVariant MyLanguageModel::data(const QModelIndex &index, int role) const
84{
85 if (index.row() < 0 || index.row() >= myItems.count()) { return QVariant(); }
86 mySetting->setMessage("data", QString("data(%1, %2)").arg(index.row(), role), MyOrgSettings::MyMessageTypes::Debug);
87 const MyLanguageData &Item = myItems[index.row()];
88 switch (role)
89 {
90 case Qt::DisplayRole: { return QString("%1, %2").arg(index.column()).arg(index.row()); } // Numbers
91 case NameRole: { return Item.name(); }
92 case NameTranslatedRole: { return tr(Item.nameTranslated().toLocal8Bit()); } // Translate this value
93 default: break;
94 }
95 return QVariant();
96}
97
101QHash<int, QByteArray> MyLanguageModel::roleNames() const
102{
103 mySetting->setMessage("role Names", "roleNames", MyOrgSettings::MyMessageTypes::Debug);
104 QHash<int, QByteArray> myRoles;
105 myRoles[NameRole] = "name";
106 myRoles[NameTranslatedRole] = "translation";
107 return myRoles;
108}
109
114{
115 mySetting->setMessage("read Language", QString("readLanguage(%1)").arg(myLanguageCode), MyOrgSettings::MyMessageTypes::Debug);
118}
119
124{
125 mySetting->setMessage("write Language", QString("writeLanguage(%1, %2)").arg(getLanguageCode(), getLanguageName()), MyOrgSettings::MyMessageTypes::Debug);
128}
129
133QString MyLanguageModel::translateThis(const QString &thisPhrase)
134{
135 return tr(thisPhrase.toLocal8Bit());
136}
137
142{
143 isDebugMessage = thisState;
144 mySetting->setMessage("set Debug Message", QString("setDebugMessage(%1)").arg(thisState), MyOrgSettings::MyMessageTypes::Debug);
145 // Debugging
146 mySetting->writeSettings(mySetting->MY_IS_DEBUG_MESSAGE, isDebugMessage ? "true" : "false");
147 //isDebugMessage = mySetting->readSettingsBool(mySetting->MY_IS_DEBUG_MESSAGE, isDebugMessage);
148}
149
154{
155 mySetting->setMessage("get Debug Message", QString("getDebugMessage(%1)").arg(isDebugMessage), MyOrgSettings::MyMessageTypes::Debug);
156 return isDebugMessage;
157}
158
162void MyLanguageModel::setMainLoaded(bool thisMainLoaded)
163{
164 mySetting->setMessage("set Main Loaded", "setMainLoaded", MyOrgSettings::MyMessageTypes::Debug);
165 isMainLoaded = thisMainLoaded;
166}
167
172{
173 mySetting->setMessage("get Main Loaded", "getMainLoaded", MyOrgSettings::MyMessageTypes::Debug);
174 return isMainLoaded;
175}
176
180void MyLanguageModel::setLanguageList(const QStringList &thisLanguageList)
181{
182 myLanguages = thisLanguageList;
183}
184
189{
190 return myLanguages;
191}
192
197{
198 mySetting->setMessage("set Languages", "setLanguages", MyOrgSettings::MyMessageTypes::Debug);
199 const QStringList theQmFiles = getQmFiles(getTranslationSource());
200 for (int i = 0; i < theQmFiles.size(); ++i)
201 {
202 QString theLanguageName = getLanguageFromFile(getTransFilePrefix(), theQmFiles.at(i));
203 addItem(MyLanguageData(theLanguageName, tr(theLanguageName.toLocal8Bit())));
204 myLanguages.append(theLanguageName);
205 } // end for
206}
207
211void MyLanguageModel::setLanguage(const QString &thisLanguageName)
212{
213 mySetting->setMessage("set Language", QString("setLanguage(%1)").arg(thisLanguageName), MyOrgSettings::MyMessageTypes::Debug);
214 if (thisLanguageName.isEmpty()) { return; }
215 // Get Language File
216 QString theQmLanguageFile = getLanguageFile(languageNameToCode(thisLanguageName), getTranslationSource(), getTransFilePrefix());
217 // Load Language
218 if (myTranslator != nullptr ) { qApp->removeTranslator(myTranslator); }
219 myTranslator = new QTranslator(qApp);
220 if (myTranslator->load(theQmLanguageFile))
221 {
222 qApp->installTranslator(myTranslator);
223 /* FIXME in MainWindow.h make sure to add a function to relates in
224 * protected slots: virtual void changeEvent(QEvent * event) override;
225 * see MainWindow.h and MainWindow.cpp
226 */
227 #ifdef MY_QML
228 myEngine.retranslate();
229 #endif
230 setLanguageName(thisLanguageName);
231 setLanguageCode(languageNameToCode(thisLanguageName));
233 emit languageChanged();
234 }
235 else
236 {
237 mySetting->setMessage("set Language", QString("%1: %2").arg(tr("loadLanguage failed"), theQmLanguageFile), MyOrgSettings::MyMessageTypes::Critical);
238 }
239}
240
245QString MyLanguageModel::getLanguageFromFile(const QString &thisPrefix, const QString &thisQmLanguageFile)
246{
247 mySetting->setMessage("get Language From File", QString("getLanguageFromFile(%1, %2)").arg(thisPrefix, thisQmLanguageFile), MyOrgSettings::MyMessageTypes::Debug);
248 return getLocalizerCode(thisPrefix, thisQmLanguageFile);
249}
250
254QString MyLanguageModel::getLocalizerCode(const QString &thisPrefix, const QString &thisQmFile)
255{
256 mySetting->setMessage("get Localizer Code", QString("getLocalizerCode(%1, %2)").arg(thisPrefix, thisQmFile), MyOrgSettings::MyMessageTypes::Debug);
257 QString theQmLang = getLocalizedCodeFromFile(thisPrefix, thisQmFile);
258 if (theQmLang.contains("_"))
259 { theQmLang = theQmLang.replace("_", "-"); }
260 return languageCodeToName(theQmLang);
261}
262
266QString MyLanguageModel::getLocalizedCodeFromFile(const QString &thisPrefix, const QString &thisQmFile)
267{
268 mySetting->setMessage("get Localized Code From File", QString("getLocalizedCodeFromFile(%1, %2)").arg(thisPrefix, thisQmFile), MyOrgSettings::MyMessageTypes::Debug);
269 QFileInfo theFileInfo(thisQmFile);
270
271 QString theFileName = theFileInfo.baseName();
272 theFileName = theFileName.remove(QString("%1_").arg(thisPrefix));
273 if (theFileName.contains("_"))
274 {
275 if (!theFileName.contains("zh"))
276 { theFileName = theFileName.section("_", 0, 0); }
277 }
278 return theFileName;
279}
280
284QStringList MyLanguageModel::getQmFiles(const QString &thisFolder)
285{
286 mySetting->setMessage("getQmFiles", QString("getQmFiles(%1)").arg(thisFolder), MyOrgSettings::MyMessageTypes::Debug);
287 // Read from resource file
288 QDir dir(QString(":/%1").arg(thisFolder));
289 QStringList fileNames = dir.entryList(QStringList("*.qm"), QDir::Files, QDir::Name);
290 for (QString &fileName : fileNames)
291 {
292 fileName = dir.filePath(fileName);
293 QFileInfo theFileInfo(fileName);
294 QString theLanguage = theFileInfo.baseName();
295 theLanguage = getLocalizerCode(myTransFilePrefix, theLanguage);
296 myCurrentQmFiles.insert(theLanguage, fileName);
297 }
298 return fileNames;
299}
300
304QStringList MyLanguageModel::getTsFiles(const QString &thisFolder)
305{
306 mySetting->setMessage("getTsFiles", QString("getTsFiles(%1)").arg(thisFolder), MyOrgSettings::MyMessageTypes::Debug);
307 QDir dir(thisFolder);
308 QStringList fileNames = dir.entryList(QStringList("*.ts"), QDir::Files, QDir::Name);
309 for (QString &fileName : fileNames)
310 { fileName = dir.filePath(fileName); }
311 return fileNames;
312}
313
317QString MyLanguageModel::getLangCode(const QString &thisString)
318{
319 mySetting->setMessage("getLangCode", QString("getLangCode(%1)").arg(thisString), MyOrgSettings::MyMessageTypes::Debug);
320 QString theLangCode = thisString;
321 if (theLangCode.indexOf('_') < 0) { return ""; }
322 if (theLangCode.indexOf('.') > 0)
323 { theLangCode = theLangCode.mid(0, theLangCode.indexOf('.')); }
324 return theLangCode.mid(theLangCode.indexOf('_') + 1);
325}
326
331{
332 mySetting->setMessage("get Translation Source", QString("getTranslationSource(%1)").arg(myTranslationSource), MyOrgSettings::MyMessageTypes::Debug);
333 return myTranslationSource;
334}
335
339void MyLanguageModel::setTranslationSource(const QString &thisTranslationSource)
340{
341 mySetting->setMessage("set Translation Source", QString("setTranslationSource(%1)").arg(thisTranslationSource), MyOrgSettings::MyMessageTypes::Debug);
342 myTranslationSource = thisTranslationSource;
343}
344
349{
350 mySetting->setMessage("get Help Source", QString("getHelpSource(%1)").arg(myHelpSource), MyOrgSettings::MyMessageTypes::Debug);
351 return myHelpSource;
352}
353
357void MyLanguageModel::setHelpSource(const QString &thisHelpSource)
358{
359 mySetting->setMessage("set Help Source", QString("setHelpSource(%1)").arg(thisHelpSource), MyOrgSettings::MyMessageTypes::Debug);
360 myHelpSource = thisHelpSource;
361}
362
367{
368 mySetting->setMessage("get Trans File Prefix", QString("getTransFilePrefix(%1)").arg(myTransFilePrefix), MyOrgSettings::MyMessageTypes::Debug);
369 return myTransFilePrefix;
370}
371
375void MyLanguageModel::setTransFilePrefix(const QString &thisTransFilePrefix)
376{
377 mySetting->setMessage("set Trans File Prefix", QString("setTransFilePrefix(%1)").arg(thisTransFilePrefix), MyOrgSettings::MyMessageTypes::Debug);
378 myTransFilePrefix = thisTransFilePrefix;
379}
380
384QString MyLanguageModel::getLanguageFile(const QString &thisLanguageCode, const QString &thisPath, const QString &thisPrefix)
385{
386 mySetting->setMessage("get Language File", QString("getLanguageFile(%1, %2, %3)").arg(thisLanguageCode, thisPath, thisPrefix), MyOrgSettings::MyMessageTypes::Debug);
387 QString theLang = thisLanguageCode;
388 if (theLang.contains("-"))
389 { theLang = theLang.replace("-", "_"); }
390 const QStringList theQmFiles = getQmFiles(thisPath);
391 // FIXME setLanguages() read from internal db myCurrentQmFiles
392 for (int i = 0; i < theQmFiles.size(); ++i)
393 {
394 if (languageMatch(thisPrefix, theLang, theQmFiles.at(i)))
395 { return theQmFiles.at(i); }
396 }
397 return "";
398}
399
403bool MyLanguageModel::languageMatch(const QString &thisPrefix, const QString &thisLang, const QString &thisQmFile)
404{
405 mySetting->setMessage("language Match", QString("languageMatch(%1, %2, %3)").arg(thisPrefix, thisLang, thisQmFile), MyOrgSettings::MyMessageTypes::Debug);
406 // qmFile: ProjectName_xx.qm
407 QString theLang = thisLang;
408 QString theLocalizer = getLocalizedCodeFromFile(thisPrefix, thisQmFile);
409 if (theLocalizer.contains("_"))
410 { theLocalizer = theLocalizer.section("_", 0, 0); }
411 if (thisLang.contains("_"))
412 { theLang = thisLang.section("_", 0, 0); }
413 return theLocalizer == theLang;
414}
415
420{
421 mySetting->setMessage("get Default LanguageCode", QString("getDefaultLanguageCode(%1)").arg(language(QLocale())), MyOrgSettings::MyMessageTypes::Debug);
422 return language(QLocale());
423}
424
429{
430 mySetting->setMessage("get Default Lanuage Name", QString("getDefaultLanuageName=%1").arg(getLanguageName()), MyOrgSettings::MyMessageTypes::Debug);
431 return getLanguageName();
432}
433
437void MyLanguageModel::setLanguageCode(const QString &thisLanguageCode)
438{
439 mySetting->setMessage("set Language Code", QString("setLanguageCode(%1)").arg(thisLanguageCode), MyOrgSettings::MyMessageTypes::Debug);
440 myLanguageCode = thisLanguageCode;
441}
442
447{
448 if (myLanguageCode.isEmpty())
450 mySetting->setMessage("get Language Code", QString("getLanguageCode(%1)").arg(myLanguageCode), MyOrgSettings::MyMessageTypes::Debug);
451 return myLanguageCode;
452}
453
457void MyLanguageModel::setLanguageName(const QString &thisLanguageName)
458{
459 mySetting->setMessage("set Language Name", QString("setLanguageName(%1)").arg(thisLanguageName), MyOrgSettings::MyMessageTypes::Debug);
460 myLanguageName = thisLanguageName;
461}
462
467{
468 if (myLanguageName.isEmpty())
470 mySetting->setMessage("get Language Name", QString("getLanguageName(%1)").arg(myLanguageName), MyOrgSettings::MyMessageTypes::Debug);
471 return myLanguageName;
472}
473
477QString MyLanguageModel::languageCodeToName(const QString &thisLangageCode)
478{
479 mySetting->setMessage("language Code To Name", QString("languageCodeToName(%1)").arg(s_genericLanguageCodeToName.value(thisLangageCode)), MyOrgSettings::MyMessageTypes::Debug);
480 return s_genericLanguageCodeToName.value(thisLangageCode);
481} // end languageCodeToName
482
486QString MyLanguageModel::languageNameToCode(const QString &lang)
487{
488 mySetting->setMessage("language Name To Code", QString("languageNameToCode(%1)").arg(s_genericLanguageNameToCode.value(lang)), MyOrgSettings::MyMessageTypes::Debug);
489 return s_genericLanguageNameToCode.value(lang);
490} // end languageNameToCode
491
495const QMap<QString, QString> MyLanguageModel::s_genericLanguageCodeToName =
496{
497 { QStringLiteral("auto"), QStringLiteral("Auto") },
498 { QStringLiteral("af"), QStringLiteral("Afrikaans") },
499 { QStringLiteral("sq"), QStringLiteral("Albanian") },
500 { QStringLiteral("am"), QStringLiteral("Amharic") },
501 { QStringLiteral("ar"), QStringLiteral("Arabic") },
502 { QStringLiteral("hy"), QStringLiteral("Armenian") },
503 { QStringLiteral("az"), QStringLiteral("Azerbaijani") },
504 { QStringLiteral("ba"), QStringLiteral("Bashkir") },
505 { QStringLiteral("eu"), QStringLiteral("Basque") },
506 { QStringLiteral("be"), QStringLiteral("Belarusian") },
507 { QStringLiteral("bn"), QStringLiteral("Bengali") },
508 { QStringLiteral("bs"), QStringLiteral("Bosnian") },
509 { QStringLiteral("bg"), QStringLiteral("Bulgarian") },
510 { QStringLiteral("yue"), QStringLiteral("Cantonese") },
511 { QStringLiteral("ca"), QStringLiteral("Catalan") },
512 { QStringLiteral("ceb"), QStringLiteral("Cebuano") },
513 { QStringLiteral("ny"), QStringLiteral("Chichewa") },
514 { QStringLiteral("co"), QStringLiteral("Corsican") },
515 { QStringLiteral("hr"), QStringLiteral("Croatian") },
516 { QStringLiteral("cs"), QStringLiteral("Czech") },
517 { QStringLiteral("da"), QStringLiteral("Danish") },
518 { QStringLiteral("nl"), QStringLiteral("Dutch") },
519 { QStringLiteral("en"), QStringLiteral("English") },
520 { QStringLiteral("eo"), QStringLiteral("Esperanto") },
521 { QStringLiteral("et"), QStringLiteral("Estonian") },
522 { QStringLiteral("fj"), QStringLiteral("Fijian") },
523 { QStringLiteral("fil"), QStringLiteral("Filipino") },
524 { QStringLiteral("fi"), QStringLiteral("Finnish") },
525 { QStringLiteral("fr"), QStringLiteral("French") },
526 { QStringLiteral("fy"), QStringLiteral("Frisian") },
527 { QStringLiteral("gl"), QStringLiteral("Galician") },
528 { QStringLiteral("ka"), QStringLiteral("Georgian") },
529 { QStringLiteral("de"), QStringLiteral("German") },
530 { QStringLiteral("el"), QStringLiteral("Greek") },
531 { QStringLiteral("gu"), QStringLiteral("Gujarati") },
532 { QStringLiteral("ht"), QStringLiteral("HaitianCreole") },
533 { QStringLiteral("ha"), QStringLiteral("Hausa") },
534 { QStringLiteral("haw"), QStringLiteral("Hawaiian") },
535 { QStringLiteral("he"), QStringLiteral("Hebrew") },
536 { QStringLiteral("mrj"), QStringLiteral("HillMari") },
537 { QStringLiteral("hi"), QStringLiteral("Hindi") },
538 { QStringLiteral("hmn"), QStringLiteral("Hmong") },
539 { QStringLiteral("hu"), QStringLiteral("Hungarian") },
540 { QStringLiteral("is"), QStringLiteral("Icelandic") },
541 { QStringLiteral("ig"), QStringLiteral("Igbo") },
542 { QStringLiteral("id"), QStringLiteral("Indonesian") },
543 { QStringLiteral("ga"), QStringLiteral("Irish") },
544 { QStringLiteral("it"), QStringLiteral("Italian") },
545 { QStringLiteral("ja"), QStringLiteral("Japanese") },
546 { QStringLiteral("jw"), QStringLiteral("Javanese") },
547 { QStringLiteral("kn"), QStringLiteral("Kannada") },
548 { QStringLiteral("kk"), QStringLiteral("Kazakh") },
549 { QStringLiteral("km"), QStringLiteral("Khmer") },
550 { QStringLiteral("rw"), QStringLiteral("Kinyarwanda") },
551 { QStringLiteral("tlh"), QStringLiteral("Klingon") },
552 { QStringLiteral("tlh-Qaak"), QStringLiteral("KlingonPlqaD") },
553 { QStringLiteral("ko"), QStringLiteral("Korean") },
554 { QStringLiteral("ku"), QStringLiteral("Kurdish") },
555 { QStringLiteral("ky"), QStringLiteral("Kyrgyz") },
556 { QStringLiteral("lo"), QStringLiteral("Lao") },
557 { QStringLiteral("la"), QStringLiteral("Latin") },
558 { QStringLiteral("lv"), QStringLiteral("Latvian") },
559 { QStringLiteral("apc"), QStringLiteral("LevantineArabic") },
560 { QStringLiteral("lt"), QStringLiteral("Lithuanian") },
561 { QStringLiteral("lb"), QStringLiteral("Luxembourgish") },
562 { QStringLiteral("mk"), QStringLiteral("Macedonian") },
563 { QStringLiteral("mg"), QStringLiteral("Malagasy") },
564 { QStringLiteral("ms"), QStringLiteral("Malay") },
565 { QStringLiteral("ml"), QStringLiteral("Malayalam") },
566 { QStringLiteral("mt"), QStringLiteral("Maltese") },
567 { QStringLiteral("mi"), QStringLiteral("Maori") },
568 { QStringLiteral("mr"), QStringLiteral("Marathi") },
569 { QStringLiteral("mhr"), QStringLiteral("Mari") },
570 { QStringLiteral("mn"), QStringLiteral("Mongolian") },
571 { QStringLiteral("my"), QStringLiteral("Myanmar") },
572 { QStringLiteral("ne"), QStringLiteral("Nepali") },
573 { QStringLiteral("no"), QStringLiteral("Norwegian") },
574 { QStringLiteral("or"), QStringLiteral("Oriya") },
575 { QStringLiteral("pap"), QStringLiteral("Papiamento") },
576 { QStringLiteral("ps"), QStringLiteral("Pashto") },
577 { QStringLiteral("fa"), QStringLiteral("Persian") },
578 { QStringLiteral("pl"), QStringLiteral("Polish") },
579 { QStringLiteral("pt"), QStringLiteral("Portuguese") },
580 { QStringLiteral("pa"), QStringLiteral("Punjabi") },
581 { QStringLiteral("otq"), QStringLiteral("QueretaroOtomi") },
582 { QStringLiteral("ro"), QStringLiteral("Romanian") },
583 { QStringLiteral("ru"), QStringLiteral("Russian") },
584 { QStringLiteral("sm"), QStringLiteral("Samoan") },
585 { QStringLiteral("gd"), QStringLiteral("ScotsGaelic") },
586 { QStringLiteral("sr"), QStringLiteral("SerbianCyrillic") },
587 { QStringLiteral("sr-Latin"), QStringLiteral("SerbianLatin") },
588 { QStringLiteral("st"), QStringLiteral("Sesotho") },
589 { QStringLiteral("sn"), QStringLiteral("Shona") },
590 { QStringLiteral("zh-CN"), QStringLiteral("SimplifiedChinese") },
591 { QStringLiteral("sd"), QStringLiteral("Sindhi") },
592 { QStringLiteral("si"), QStringLiteral("Sinhala") },
593 { QStringLiteral("sk"), QStringLiteral("Slovak") },
594 { QStringLiteral("sl"), QStringLiteral("Slovenian") },
595 { QStringLiteral("so"), QStringLiteral("Somali") },
596 { QStringLiteral("es"), QStringLiteral("Spanish") },
597 { QStringLiteral("su"), QStringLiteral("Sundanese") },
598 { QStringLiteral("sw"), QStringLiteral("Swahili") },
599 { QStringLiteral("sv"), QStringLiteral("Swedish") },
600 { QStringLiteral("tl"), QStringLiteral("Tagalog") },
601 { QStringLiteral("ty"), QStringLiteral("Tahitian") },
602 { QStringLiteral("tg"), QStringLiteral("Tajik") },
603 { QStringLiteral("ta"), QStringLiteral("Tamil") },
604 { QStringLiteral("tt"), QStringLiteral("Tatar") },
605 { QStringLiteral("te"), QStringLiteral("Telugu") },
606 { QStringLiteral("th"), QStringLiteral("Thai") },
607 { QStringLiteral("to"), QStringLiteral("Tongan") },
608 { QStringLiteral("zh-TW"), QStringLiteral("TraditionalChinese") },
609 { QStringLiteral("tr"), QStringLiteral("Turkish") },
610 { QStringLiteral("tk"), QStringLiteral("Turkmen") },
611 { QStringLiteral("udm"), QStringLiteral("Udmurt") },
612 { QStringLiteral("ug"), QStringLiteral("Uighur") },
613 { QStringLiteral("uk"), QStringLiteral("Ukrainian") },
614 { QStringLiteral("ur"), QStringLiteral("Urdu") },
615 { QStringLiteral("uz"), QStringLiteral("Uzbek") },
616 { QStringLiteral("vi"), QStringLiteral("Vietnamese") },
617 { QStringLiteral("cy"), QStringLiteral("Welsh") },
618 { QStringLiteral("xh"), QStringLiteral("Xhosa") },
619 { QStringLiteral("yi"), QStringLiteral("Yiddish") },
620 { QStringLiteral("yo"), QStringLiteral("Yoruba") },
621 { QStringLiteral("yua"), QStringLiteral("YucatecMaya") },
622 { QStringLiteral("zu"), QStringLiteral("Zulu") }
623}; // end s_genericLanguageCodeToName
624
629QString MyLanguageModel::language(const QLocale &thisLocale)
630{
631 mySetting->setMessage("language", QString("language(%1)").arg(thisLocale.language()), MyOrgSettings::MyMessageTypes::Debug);
632 switch (thisLocale.language())
633 {
634 case QLocale::Afrikaans: return QStringLiteral("af");
635 case QLocale::Albanian: return QStringLiteral("sq");
636 case QLocale::Amharic: return QStringLiteral("am");
637 case QLocale::Arabic: return QStringLiteral("ar");
638 case QLocale::Armenian: return QStringLiteral("hy");
639 case QLocale::Azerbaijani: return QStringLiteral("az");
640 case QLocale::Bashkir: return QStringLiteral("ba");
641 case QLocale::Basque: return QStringLiteral("eu");
642 case QLocale::Belarusian: return QStringLiteral("be");
643 case QLocale::Bengali: return QStringLiteral("bn");
644 case QLocale::Bosnian: return QStringLiteral("bs");
645 case QLocale::Bulgarian: return QStringLiteral("bg");
646 case QLocale::Catalan: return QStringLiteral("ca");
647 case QLocale::Chinese: return QStringLiteral("zh-CN");
648 case QLocale::LiteraryChinese: return QStringLiteral("zh-TW");
649 case QLocale::Corsican: return QStringLiteral("co");
650 case QLocale::Croatian: return QStringLiteral("hr");
651 case QLocale::Czech: return QStringLiteral("cs");
652 case QLocale::Cantonese: return QStringLiteral("yue");
653 case QLocale::Cebuano: return QStringLiteral("ceb");
654 case QLocale::Chickasaw: return QStringLiteral("ny");
655 case QLocale::Danish: return QStringLiteral("da");
656 case QLocale::Dutch: return QStringLiteral("nl");
657 case QLocale::Esperanto: return QStringLiteral("eo");
658 case QLocale::Estonian: return QStringLiteral("et");
659 case QLocale::Finnish: return QStringLiteral("fi");
660 case QLocale::French: return QStringLiteral("fr");
661 case QLocale::Frisian: return QStringLiteral("fy");
662 case QLocale::Fijian: return QStringLiteral("fj");
663 case QLocale::Galician: return QStringLiteral("gl");
664 case QLocale::Georgian: return QStringLiteral("ka");
665 case QLocale::German: return QStringLiteral("de");
666 case QLocale::Greek: return QStringLiteral("el");
667 case QLocale::Gujarati: return QStringLiteral("gu");
668 case QLocale::Haitian: return QStringLiteral("ht");
669 case QLocale::Hausa: return QStringLiteral("ha");
670 case QLocale::Hawaiian: return QStringLiteral("haw");
671 case QLocale::Hebrew: return QStringLiteral("he");
672 case QLocale::Hindi: return QStringLiteral("hi");
673 case QLocale::Hungarian: return QStringLiteral("hu");
674 //case QLocale::HillMari: return QStringLiteral("mrj");
675 //case QLocale::HmongNjua Hmong:return QStringLiteral("hmn");
676 case QLocale::Icelandic: return QStringLiteral("is");
677 case QLocale::Igbo: return QStringLiteral("ig");
678 case QLocale::Indonesian: return QStringLiteral("id");
679 case QLocale::Irish: return QStringLiteral("ga");
680 case QLocale::Italian: return QStringLiteral("it");
681 case QLocale::Japanese: return QStringLiteral("ja");
682 case QLocale::Javanese: return QStringLiteral("jw");
683 case QLocale::Kannada: return QStringLiteral("kn");
684 case QLocale::Kazakh: return QStringLiteral("kk");
685 case QLocale::Khmer: return QStringLiteral("km");
686 case QLocale::Kinyarwanda: return QStringLiteral("rw");
687 case QLocale::Korean: return QStringLiteral("ko");
688 case QLocale::Kurdish: return QStringLiteral("ku");
689 //case QLocale::Klingon: return QStringLiteral("tlh");
690 //case QLocale::KlingonPlqaD: return QStringLiteral("tlh-Qaak");
691 //case QLocale::Kyrgyzstan: return QStringLiteral("ky");
692 case QLocale::Lao: return QStringLiteral("lo");
693 case QLocale::Latin: return QStringLiteral("la");
694 case QLocale::Latvian: return QStringLiteral("lv");
695 case QLocale::Lithuanian: return QStringLiteral("lt");
696 case QLocale::Luxembourgish: return QStringLiteral("lb");
697 //case QLocale::LevantineArabic:return QStringLiteral("apc");
698 //case QLocale::Mari: return QStringLiteral("mhr");
699 //case QLocale::Myanmar: return QStringLiteral("my");
700 case QLocale::Papiamento: return QStringLiteral("pap");
701 case QLocale::Macedonian: return QStringLiteral("mk");
702 case QLocale::Malagasy: return QStringLiteral("mg");
703 case QLocale::Malay: return QStringLiteral("ms");
704 case QLocale::Malayalam: return QStringLiteral("ml");
705 case QLocale::Maltese: return QStringLiteral("mt");
706 case QLocale::Maori: return QStringLiteral("mi");
707 case QLocale::Marathi: return QStringLiteral("mr");
708 case QLocale::Mongolian: return QStringLiteral("mn");
709 case QLocale::Nepali: return QStringLiteral("ne");
710 case QLocale::NorwegianBokmal: return QStringLiteral("no");
711 case QLocale::Oriya: return QStringLiteral("or");
712 //case QLocale::QueretaroOtomi: return QStringLiteral("otq");
713 case QLocale::Pashto: return QStringLiteral("ps");
714 case QLocale::Persian: return QStringLiteral("fa");
715 case QLocale::Polish: return QStringLiteral("pl");
716 case QLocale::Portuguese: return QStringLiteral("pt");
717 case QLocale::Punjabi: return QStringLiteral("pa");
718 case QLocale::Romanian: return QStringLiteral("ro");
719 case QLocale::Russian: return QStringLiteral("ru");
720 case QLocale::Samoan: return QStringLiteral("sm");
721 case QLocale::Gaelic: return QStringLiteral("gd");
722 case QLocale::Serbian: return QStringLiteral("sr");
723 case QLocale::Shona: return QStringLiteral("sn");
724 case QLocale::Sindhi: return QStringLiteral("sd");
725 case QLocale::Sinhala: return QStringLiteral("si");
726 case QLocale::Slovak: return QStringLiteral("sk");
727 case QLocale::Slovenian: return QStringLiteral("sl");
728 case QLocale::Somali: return QStringLiteral("so");
729 case QLocale::Spanish: return QStringLiteral("es");
730 case QLocale::Sundanese: return QStringLiteral("su");
731 case QLocale::Swahili: return QStringLiteral("sw");
732 case QLocale::Swedish: return QStringLiteral("sv");
733 //case QLocale::SerbianLatin: return QStringLiteral("sr-Latin");
734 //case QLocale::Sesotho: return QStringLiteral("st");
735 case QLocale::Filipino: return QStringLiteral("fil");
736 case QLocale::Tajik: return QStringLiteral("tg");
737 case QLocale::Tamil: return QStringLiteral("ta");
738 case QLocale::Tatar: return QStringLiteral("tt");
739 case QLocale::Telugu: return QStringLiteral("te");
740 case QLocale::Thai: return QStringLiteral("th");
741 case QLocale::Turkish: return QStringLiteral("tr");
742 case QLocale::Turkmen: return QStringLiteral("tk");
743 //case QLocale::Tagalog: return QStringLiteral("tl");
744 case QLocale::Tahitian: return QStringLiteral("ty");
745 case QLocale::Tongan: return QStringLiteral("to");
746 case QLocale::Uighur: return QStringLiteral("ug");
747 case QLocale::Ukrainian: return QStringLiteral("uk");
748 case QLocale::Urdu: return QStringLiteral("ur");
749 case QLocale::Uzbek: return QStringLiteral("uz");
750 //case QLocale::Udmurt: return QStringLiteral("udm");
751 case QLocale::Vietnamese: return QStringLiteral("vi");
752 case QLocale::Welsh: return QStringLiteral("cy");
753 case QLocale::Xhosa: return QStringLiteral("xh");
754 case QLocale::Yiddish: return QStringLiteral("yi");
755 case QLocale::Yoruba: return QStringLiteral("yo");
756 //case QLocale::YucatecMaya: return QStringLiteral("yua");
757 case QLocale::Zulu: return QStringLiteral("zu");
758 default:
759 if (thisLocale.name() == "HaitianCreole")
760 { return QStringLiteral("ht"); }
761 else if (thisLocale.name() == "HillMari")
762 { return QStringLiteral("mrj"); }
763 else if (thisLocale.name() == "Hmong")
764 { return QStringLiteral("hmn"); }
765 else if (thisLocale.name() == "Klingon")
766 { return QStringLiteral("tlh"); }
767 else if (thisLocale.name() == "KlingonPlqaD")
768 { return QStringLiteral("tlh-Qaak"); }
769 else if (thisLocale.name() == "Kyrgyz")
770 { return QStringLiteral("ky"); }
771 else if (thisLocale.name() == "LevantineArabic")
772 { return QStringLiteral("apc"); }
773 else if (thisLocale.name() == "Mari")
774 { return QStringLiteral("mhr"); }
775 else if (thisLocale.name() == "Myanmar")
776 { return QStringLiteral("my"); }
777 else if (thisLocale.name() == "ny")
778 { return QStringLiteral("Chichewa"); }
779 else if (thisLocale.name() == "QueretaroOtomi")
780 { return QStringLiteral("otq"); }
781 else if (thisLocale.name() == "ScotsGaelic")
782 { return QStringLiteral("gd"); }
783 else if (thisLocale.name() == "SerbianCyrillic")
784 { return QStringLiteral("sr"); }
785 else if (thisLocale.name() == "SerbianLatin")
786 { return QStringLiteral("sr-Latin"); }
787 else if (thisLocale.name() == "Sesotho")
788 { return QStringLiteral("st"); }
789 else if (thisLocale.name() == "Tagalog")
790 { return QStringLiteral("tl"); }
791 else if (thisLocale.name() == "Udmurt")
792 { return QStringLiteral("udm"); }
793 else if (thisLocale.name() == "YucatecMaya")
794 { return QStringLiteral("yua"); }
795 return QStringLiteral("en");
796 }
797} // end language(const QLocale
798
802const QMap<QString, QString> MyLanguageModel::s_genericLanguageNameToCode =
803{
804 { QStringLiteral("Auto"), QStringLiteral("auto") },
805 { QStringLiteral("Afrikaans"), QStringLiteral("af") },
806 { QStringLiteral("Albanian"), QStringLiteral("sq") },
807 { QStringLiteral("Amharic"), QStringLiteral("am") },
808 { QStringLiteral("Arabic"), QStringLiteral("ar") },
809 { QStringLiteral("Armenian"), QStringLiteral("hy") },
810 { QStringLiteral("Azerbaijani"), QStringLiteral("az") },
811 { QStringLiteral("Bashkir"), QStringLiteral("ba") },
812 { QStringLiteral("Basque"), QStringLiteral("eu") },
813 { QStringLiteral("Belarusian"), QStringLiteral("be") },
814 { QStringLiteral("Bengali"), QStringLiteral("bn") },
815 { QStringLiteral("Bosnian"), QStringLiteral("bs") },
816 { QStringLiteral("Bulgarian"), QStringLiteral("bg") },
817 { QStringLiteral("Cantonese"), QStringLiteral("yue") },
818 { QStringLiteral("Catalan"), QStringLiteral("ca") },
819 { QStringLiteral("Cebuano"), QStringLiteral("ceb") },
820 { QStringLiteral("Chichewa"), QStringLiteral("ny") },
821 { QStringLiteral("Corsican"), QStringLiteral("co") },
822 { QStringLiteral("Croatian"), QStringLiteral("hr") },
823 { QStringLiteral("Czech"), QStringLiteral("cs") },
824 { QStringLiteral("Danish"), QStringLiteral("da") },
825 { QStringLiteral("Dutch"), QStringLiteral("nl") },
826 { QStringLiteral("English"), QStringLiteral("en") },
827 { QStringLiteral("Esperanto"), QStringLiteral("eo") },
828 { QStringLiteral("Estonian"), QStringLiteral("et") },
829 { QStringLiteral("Fijian"), QStringLiteral("fj") },
830 { QStringLiteral("Filipino"), QStringLiteral("fil") },
831 { QStringLiteral("Finnish"), QStringLiteral("fi") },
832 { QStringLiteral("French"), QStringLiteral("fr") },
833 { QStringLiteral("Frisian"), QStringLiteral("fy") },
834 { QStringLiteral("Galician"), QStringLiteral("gl") },
835 { QStringLiteral("Georgian"), QStringLiteral("ka") },
836 { QStringLiteral("German"), QStringLiteral("de") },
837 { QStringLiteral("Greek"), QStringLiteral("el") },
838 { QStringLiteral("Gujarati"), QStringLiteral("gu") },
839 { QStringLiteral("HaitianCreole"), QStringLiteral("ht") },
840 { QStringLiteral("Hausa"), QStringLiteral("ha") },
841 { QStringLiteral("Hawaiian"), QStringLiteral("haw") },
842 { QStringLiteral("Hebrew"), QStringLiteral("he") },
843 { QStringLiteral("HillMari"), QStringLiteral("mrj") },
844 { QStringLiteral("Hindi"), QStringLiteral("hi") },
845 { QStringLiteral("Hmong"), QStringLiteral("hmn") },
846 { QStringLiteral("Hungarian"), QStringLiteral("hu") },
847 { QStringLiteral("Icelandic"), QStringLiteral("is") },
848 { QStringLiteral("Igbo"), QStringLiteral("ig") },
849 { QStringLiteral("Indonesian"), QStringLiteral("id") },
850 { QStringLiteral("Irish"), QStringLiteral("ga") },
851 { QStringLiteral("Italian"), QStringLiteral("it") },
852 { QStringLiteral("Japanese"), QStringLiteral("ja") },
853 { QStringLiteral("Javanese"), QStringLiteral("jw") },
854 { QStringLiteral("Kannada"), QStringLiteral("kn") },
855 { QStringLiteral("Kazakh"), QStringLiteral("kk") },
856 { QStringLiteral("Khmer"), QStringLiteral("km") },
857 { QStringLiteral("Kinyarwanda"), QStringLiteral("rw") },
858 { QStringLiteral("Klingon"), QStringLiteral("tlh") },
859 { QStringLiteral("KlingonPlqaD"), QStringLiteral("tlh-Qaak") },
860 { QStringLiteral("Korean"), QStringLiteral("ko") },
861 { QStringLiteral("Kurdish"), QStringLiteral("ku") },
862 { QStringLiteral("Kyrgyz"), QStringLiteral("ky") },
863 { QStringLiteral("Lao"), QStringLiteral("lo") },
864 { QStringLiteral("Latin"), QStringLiteral("la") },
865 { QStringLiteral("Latvian"), QStringLiteral("lv") },
866 { QStringLiteral("LevantineArabic"), QStringLiteral("apc") },
867 { QStringLiteral("Lithuanian"), QStringLiteral("lt") },
868 { QStringLiteral("Luxembourgish"), QStringLiteral("lb") },
869 { QStringLiteral("Macedonian"), QStringLiteral("mk") },
870 { QStringLiteral("Malagasy"), QStringLiteral("mg") },
871 { QStringLiteral("Malay"), QStringLiteral("ms") },
872 { QStringLiteral("Malayalam"), QStringLiteral("ml") },
873 { QStringLiteral("Maltese"), QStringLiteral("mt") },
874 { QStringLiteral("Maori"), QStringLiteral("mi") },
875 { QStringLiteral("Marathi"), QStringLiteral("mr") },
876 { QStringLiteral("Mari"), QStringLiteral("mhr") },
877 { QStringLiteral("Mongolian"), QStringLiteral("mn") },
878 { QStringLiteral("Myanmar"), QStringLiteral("my") },
879 { QStringLiteral("Nepali"), QStringLiteral("ne") },
880 { QStringLiteral("Norwegian"), QStringLiteral("no") },
881 { QStringLiteral("Oriya"), QStringLiteral("or") },
882 { QStringLiteral("Papiamento"), QStringLiteral("pap") },
883 { QStringLiteral("Pashto"), QStringLiteral("ps") },
884 { QStringLiteral("Persian"), QStringLiteral("fa") },
885 { QStringLiteral("Polish"), QStringLiteral("pl") },
886 { QStringLiteral("Portuguese"), QStringLiteral("pt") },
887 { QStringLiteral("Punjabi"), QStringLiteral("pa") },
888 { QStringLiteral("QueretaroOtomi"), QStringLiteral("otq") },
889 { QStringLiteral("Romanian"), QStringLiteral("ro") },
890 { QStringLiteral("Russian"), QStringLiteral("ru") },
891 { QStringLiteral("Samoan"), QStringLiteral("sm") },
892 { QStringLiteral("ScotsGaelic"), QStringLiteral("gd") },
893 { QStringLiteral("SerbianCyrillic"), QStringLiteral("sr") },
894 { QStringLiteral("SerbianLatin"), QStringLiteral("sr-Latin") },
895 { QStringLiteral("Sesotho"), QStringLiteral("st") },
896 { QStringLiteral("Shona"), QStringLiteral("sn") },
897 { QStringLiteral("SimplifiedChinese"), QStringLiteral("zh-CN") },
898 { QStringLiteral("Sindhi"), QStringLiteral("sd") },
899 { QStringLiteral("Sinhala"), QStringLiteral("si") },
900 { QStringLiteral("Slovak"), QStringLiteral("sk") },
901 { QStringLiteral("Slovenian"), QStringLiteral("sl") },
902 { QStringLiteral("Somali"), QStringLiteral("so") },
903 { QStringLiteral("Spanish"), QStringLiteral("es") },
904 { QStringLiteral("Sundanese"), QStringLiteral("su") },
905 { QStringLiteral("Swahili"), QStringLiteral("sw") },
906 { QStringLiteral("Swedish"), QStringLiteral("sv") },
907 { QStringLiteral("SerbianLatin"), QStringLiteral("sr-Latin") },
908 { QStringLiteral("Tagalog"), QStringLiteral("tl") },
909 { QStringLiteral("Tahitian"), QStringLiteral("ty") },
910 { QStringLiteral("Tajik"), QStringLiteral("tg") },
911 { QStringLiteral("Tamil"), QStringLiteral("ta") },
912 { QStringLiteral("Tatar"), QStringLiteral("tt") },
913 { QStringLiteral("Telugu"), QStringLiteral("te") },
914 { QStringLiteral("Thai"), QStringLiteral("th") },
915 { QStringLiteral("Tongan"), QStringLiteral("to") },
916 { QStringLiteral("TraditionalChinese"), QStringLiteral("zh-TW") },
917 { QStringLiteral("Turkish"), QStringLiteral("tr") },
918 { QStringLiteral("Turkmen"), QStringLiteral("tk") },
919 { QStringLiteral("Udmurt"), QStringLiteral("udm") },
920 { QStringLiteral("Uighur"), QStringLiteral("ug") },
921 { QStringLiteral("Ukrainian"), QStringLiteral("uk") },
922 { QStringLiteral("Urdu"), QStringLiteral("ur") },
923 { QStringLiteral("Uzbek"), QStringLiteral("uz") },
924 { QStringLiteral("Udmurt"), QStringLiteral("udm") },
925 { QStringLiteral("Vietnamese"), QStringLiteral("vi") },
926 { QStringLiteral("Welsh"), QStringLiteral("cy") },
927 { QStringLiteral("Xhosa"), QStringLiteral("xh") },
928 { QStringLiteral("Yiddish"), QStringLiteral("yi") },
929 { QStringLiteral("Yoruba"), QStringLiteral("yo") },
930 { QStringLiteral("YucatecMaya"), QStringLiteral("yua") },
931 { QStringLiteral("YucatecMaya"), QStringLiteral("yua") },
932 { QStringLiteral("Zulu"), QStringLiteral("zu") }
933}; // end s_genericLanguageNameToCode
934
938QString MyLanguageModel::languageName(const QLocale &thisLocale)
939{
940 mySetting->setMessage("languageName", QString("languageName(%1)").arg(thisLocale.language()), MyOrgSettings::MyMessageTypes::Debug);
941 switch (thisLocale.language())
942 {
943 case QLocale::Afrikaans: return tr("Afrikaans");
944 case QLocale::Albanian: return tr("Albanian");
945 case QLocale::Amharic: return tr("Amharic");
946 case QLocale::Arabic: return tr("Arabic");
947 case QLocale::Armenian: return tr("Armenian");
948 case QLocale::Azerbaijani: return tr("Azeerbaijani");
949 case QLocale::Basque: return tr("Basque");
950 case QLocale::Bashkir: return tr("Bashkir");
951 case QLocale::Belarusian: return tr("Belarusian");
952 case QLocale::Bengali: return tr("Bengali");
953 case QLocale::Bosnian: return tr("Bosnian");
954 case QLocale::Bulgarian: return tr("Bulgarian");
955 case QLocale::Catalan: return tr("Catalan");
956 case QLocale::Cantonese: return tr("Cantonese");
957 case QLocale::Cebuano: return tr("Cebuano");
958 case QLocale::Chinese: return tr("SimplifiedChinese");
959 case QLocale::LiteraryChinese: return tr("TraditionalChinese");
960 case QLocale::Corsican: return tr("Corsican");
961 case QLocale::Croatian: return tr("Croatian");
962 case QLocale::Czech: return tr("Czech");
963 case QLocale::Danish: return tr("Danish");
964 case QLocale::Dutch: return tr("Dutch");
965 case QLocale::English: return tr("English");
966 case QLocale::Esperanto: return tr("Esperanto");
967 case QLocale::Estonian: return tr("Estonian");
968 case QLocale::Fijian: return tr("Fijian");
969 case QLocale::Filipino: return tr("Filipino");
970 case QLocale::Finnish: return tr("Finnish");
971 case QLocale::French: return tr("French");
972 case QLocale::Frisian: return tr("Frisian");
973 case QLocale::Galician: return tr("Galician");
974 case QLocale::Georgian: return tr("Georgian");
975 case QLocale::German: return tr("German");
976 case QLocale::Greek: return tr("Greek");
977 case QLocale::Gujarati: return tr("Gujarati");
978 //case QLocale::HaitianCreole: return tr("Haitian Creole");
979 case QLocale::Hausa: return tr("Hausa");
980 case QLocale::Hawaiian: return tr("Hawaiian");
981 case QLocale::Hebrew: return tr("Hebrew");
982 //case QLocale::HillMari: return tr("Hill Mari");
983 case QLocale::Hindi: return tr("Hindi");
984 //case QLocale::Hmong: return tr("Hmong");
985 case QLocale::Hungarian: return tr("Hungarian");
986 case QLocale::Icelandic: return tr("Icelandic");
987 case QLocale::Igbo: return tr("Igbo");
988 case QLocale::Indonesian: return tr("Indonesian");
989 case QLocale::Irish: return tr("Irish");
990 case QLocale::Italian: return tr("Italian");
991 case QLocale::Japanese: return tr("Japanese");
992 case QLocale::Javanese: return tr("Javanese");
993 case QLocale::Kannada: return tr("Kannada");
994 case QLocale::Kazakh: return tr("Kazakh");
995 case QLocale::Khmer: return tr("Khmer");
996 case QLocale::Kinyarwanda: return tr("Kinyarwanda");
997 //case QLocale::Klingon: return tr("Klingon");
998 //case QLocale::KlingonPlqaD: return tr("Klingon (PlqaD)");
999 case QLocale::Korean: return tr("Korean");
1000 case QLocale::Kurdish: return tr("Kurdish");
1001 //case QLocale::Kyrgyz: return tr("Kyrgyz");
1002 case QLocale::Lao: return tr("Lao");
1003 case QLocale::Latin: return tr("Latin");
1004 case QLocale::Latvian: return tr("Latvian");
1005 //case QLocale::LevantineArabic: return tr("Levantine Arabic");
1006 case QLocale::Lithuanian: return tr("Lithuanian");
1007 case QLocale::Luxembourgish: return tr("Luxembourgish");
1008 case QLocale::Macedonian: return tr("Macedonian");
1009 case QLocale::Malagasy: return tr("Malagasy");
1010 case QLocale::Malay: return tr("Malay");
1011 case QLocale::Malayalam: return tr("Malayalam");
1012 case QLocale::Maltese: return tr("Maltese");
1013 case QLocale::Maori: return tr("Maori");
1014 case QLocale::Marathi: return tr("Marathi");
1015 //case QLocale::Mari: return tr("Mari");
1016 case QLocale::Mongolian: return tr("Mongolian");
1017 //case QLocale::Myanmar: return tr("Myanmar");
1018 case QLocale::Nepali: return tr("Nepali");
1019 case QLocale::NorwegianBokmal: return tr("Norwegian");
1020 case QLocale::Oriya: return tr("Oriya");
1021 //case QLocale::Chichewa: return tr("Chichewa");
1022 case QLocale::Papiamento: return tr("Papiamento");
1023 case QLocale::Pashto: return tr("Pashto");
1024 case QLocale::Persian: return tr("Persian");
1025 case QLocale::Polish: return tr("Polish");
1026 case QLocale::Portuguese: return tr("Portuguese");
1027 case QLocale::Punjabi: return tr("Punjabi");
1028 //case QLocale::QueretaroOtomi: return tr("Queretaro Otomi");
1029 case QLocale::Romanian: return tr("Romanian");
1030 case QLocale::Russian: return tr("Russian");
1031 case QLocale::Samoan: return tr("Samoan");
1032 //case QLocale::ScotsGaelic: return tr("Scots Gaelic");
1033 //case QLocale::SerbianCyrillic: return tr("Serbian (Cyrillic)");
1034 //case QLocale::SerbianLatin: return tr("Serbian (Latin)");
1035 //case QLocale::Sesotho: return tr("Sesotho");
1036 case QLocale::Shona: return tr("Shona");
1037 case QLocale::Sindhi: return tr("Sindhi");
1038 case QLocale::Sinhala: return tr("Sinhala");
1039 case QLocale::Slovak: return tr("Slovak");
1040 case QLocale::Slovenian: return tr("Slovenian");
1041 case QLocale::Somali: return tr("Somali");
1042 case QLocale::Spanish: return tr("Spanish");
1043 case QLocale::Sundanese: return tr("Sundanese");
1044 case QLocale::Swahili: return tr("Swahili");
1045 case QLocale::Swedish: return tr("Swedish");
1046 //case QLocale::Tagalog: return tr("Tagalog");
1047 case QLocale::Tahitian: return tr("Tahitian");
1048 case QLocale::Tajik: return tr("Tajik");
1049 case QLocale::Tamil: return tr("Tamil");
1050 case QLocale::Tatar: return tr("Tatar");
1051 case QLocale::Telugu: return tr("Telugu");
1052 case QLocale::Thai: return tr("Thai");
1053 case QLocale::Tongan: return tr("Tongan");
1054 case QLocale::Turkish: return tr("Turkish");
1055 case QLocale::Turkmen: return tr("Turkmen");
1056 //case QLocale::Udmurt: return tr("Udmurt");
1057 case QLocale::Uighur: return tr("Uighur");
1058 case QLocale::Ukrainian: return tr("Ukrainian");
1059 case QLocale::Urdu: return tr("Urdu");
1060 case QLocale::Uzbek: return tr("Uzbek");
1061 case QLocale::Vietnamese: return tr("Vietnamese");
1062 case QLocale::Welsh: return tr("Welsh");
1063 case QLocale::Xhosa: return tr("Xhosa");
1064 case QLocale::Yiddish: return tr("Yiddish");
1065 case QLocale::Yoruba: return tr("Yoruba");
1066 //case QLocale::YucatecMaya: return tr("Yucatec Maya");
1067 case QLocale::Zulu: return tr("Zulu");
1068 default:
1069 if (thisLocale.name() == "HaitianCreole")
1070 { return tr("Haitian Creole"); }
1071 else if (thisLocale.name() == "HillMari")
1072 { return tr("Hill Mari"); }
1073 else if (thisLocale.name() == "Hmong")
1074 { return tr("Hmong"); }
1075 else if (thisLocale.name() == "Klingon")
1076 { return tr("Klingon"); }
1077 else if (thisLocale.name() == "KlingonPlqaD")
1078 { return tr("Klingon (PlqaD)"); }
1079 else if (thisLocale.name() == "Kyrgyz")
1080 { return tr("Kyrgyz"); }
1081 else if (thisLocale.name() == "LevantineArabic")
1082 { return tr("Levantine Arabic"); }
1083 else if (thisLocale.name() == "Mari")
1084 { return tr("Mari"); }
1085 else if (thisLocale.name() == "Myanmar")
1086 { return tr("Myanmar"); }
1087 else if (thisLocale.name() == "Chichewa")
1088 { return tr("Chichewa"); }
1089 else if (thisLocale.name() == "QueretaroOtomi")
1090 { return tr("Queretaro Otomi"); }
1091 else if (thisLocale.name() == "ScotsGaelic")
1092 { return tr("Scots Gaelic"); }
1093 else if (thisLocale.name() == "SerbianCyrillic")
1094 { return tr("Serbian (Cyrillic)"); }
1095 else if (thisLocale.name() == "SerbianLatin")
1096 { return tr("Serbian (Latin)"); }
1097 else if (thisLocale.name() == "Sesotho")
1098 { return tr("Sesotho"); }
1099 else if (thisLocale.name() == "Tagalog")
1100 { return tr("Tagalog"); }
1101 else if (thisLocale.name() == "Udmurt")
1102 { return tr("Udmurt"); }
1103 else if (thisLocale.name() == "YucatecMaya")
1104 { return tr("Yucatec Maya"); }
1105 return QString();
1106 } // end switch (lang)
1107} // end languageName(Language lang)
1108
Language Data. /class MyLanguageData.
QString name() const
name
QString nameTranslated() const
name Translated
Abstact Model used for ComboBox. /class MyLanguageModel.
void setTransFilePrefix(const QString &thisTransFilePrefix)
set TransFile Prefix
Q_INVOKABLE void setLanguages()
set Languages
bool getDebugMessage()
get Debug Message
QString getLanguageCode()
get Language Code
QStringList getTsFiles(const QString &thisFolder)
get Ts Files
MyLanguageModel(QObject *parent=nullptr)
My Abstact Model Constructor.
~MyLanguageModel()
Deconstructor.
QString language(const QLocale &thisLocale)
language
QHash< int, QByteArray > roleNames() const
roleNames
Q_INVOKABLE void setLanguageList(const QStringList &thisLanguageList)
set Language List
QStringList getQmFiles(const QString &thisFolder)
get Qm Files
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
data
QString getDefaultLanguageCode()
get Default Language Code
QString getHelpSource()
get Help Source
QString languageName(const QLocale &thisLocale)
language Name used for tr to translate all names
void setTranslationSource(const QString &thisTranslationSource)
set Translation Source
bool getMainLoaded()
get Main Loaded
void setDebugMessage(bool thisState)
set Debug Message
QString getLangCode(const QString &thisString)
get Lang Code
QString getTranslationSource()
get Translation Source
Q_INVOKABLE void addItem(const QString &thisName, const QString &thisNameTranslated)
add Item
void setLanguageCode(const QString &thisLanguageCode)
set Language Code
int rowCount(const QModelIndex &parent=QModelIndex()) const
row Count
Q_INVOKABLE QStringList & getLanguageList()
get Language List
void setMainLoaded(bool thisMainLoaded)
set Main Loaded
QString getLanguageFromFile(const QString &thisPrefix, const QString &thisQmLanguageFile)
get Language From File
QString getLanguageName()
get Language Name
QString translateThis(const QString &thisPhrase)
translate This is required for Translation Files
void setHelpSource(const QString &thisHelpSource)
set Help Source
Q_INVOKABLE void setLanguage(const QString &thisLanguageName)
load Language
QString getLocalizedCodeFromFile(const QString &thisPrefix, const QString &thisQmFile)
get Localized Code From File
MyOrgSettings * mySetting
mySetting
void readLanguage()
read Language
QString getTransFilePrefix()
get TransFile Prefix
Q_INVOKABLE void removeItem(int thisRow)
remove Item
void writeLanguage()
write Language
QString getDefaultLanguageName()
get Default Lanuage Name
void setLanguageName(const QString &thisLanguageName)
set Language Name
QString getLocalizerCode(const QString &thisPrefix, const QString &thisQmFile)
get Localizer Code
QString languageCodeToName(const QString &thisLangageCode)
language Code To Name
QString languageNameToCode(const QString &lang)
language Name to Code Added by Light-Wizzard
@ NameTranslatedRole
Name Translated Role.
@ NameRole
Name Role.
QString getLanguageFile(const QString &thisLanguageCode, const QString &thisPath, const QString &thisPrefix)
get Language File
void languageChanged()
language Changed Event
bool languageMatch(const QString &thisPrefix, const QString &thisLang, const QString &thisQmFile)
language Match
My Org Settings.
Definition: MyOrgSettings.h:35
const QString MY_LOCALE_LANG_CODE
MY_CURRENT_LANG_CODE
Definition: MyOrgSettings.h:93
const QString MY_IS_DEBUG_MESSAGE
MY_IS_DEBUG_MESSAGE
Definition: MyOrgSettings.h:92
const QString MY_LOCALE_LANG_NAME
MY_LOCALE_LANG_NAME
Definition: MyOrgSettings.h:94
QVariant setMessage(const QString &thisTitle, const QString &thisMessage, MyMessageTypes thisMessageType) const
set Message
void writeSettings(const QString &thisSetting, const QString &thisValue)
write Settings
QString readSettings(const QString &thisSetting, const QString &thisDefault)
read Settings