9#include <QtCore/QLocale>
13using namespace Qt::Literals::StringLiterals;
20 for (
int i = QLocale::C + 1; i < QLocale::LastLanguage; ++i) {
21 const auto language = QLocale::Language(i);
22 QString lang = QLocale::languageToString(language);
23 const auto loc = QLocale(language);
27 if (loc.language() == language && language != QLocale::English) {
28 const QString native = loc.nativeLanguageName();
29 if (!native.isEmpty())
30 lang = tr(
"%1 (%2)").arg(lang, native);
32 m_ui.srcCbLanguageList->addItem(lang, QVariant(i));
34 m_ui.srcCbLanguageList->model()->sort(0, Qt::AscendingOrder);
35 m_ui.srcCbLanguageList->insertItem(0,
"POSIX"_L1, QVariant(QLocale::C));
37 m_ui.tgtCbLanguageList->setModel(m_ui.srcCbLanguageList->model());
42 m_dataModel = dataModel;
44 QString fn = QFileInfo(dataModel->srcFileName()).baseName();
45 setWindowTitle(tr(
"Settings for '%1' - Qt Linguist").arg(fn));
50 m_phraseBook = phraseBook;
52 QString fn = QFileInfo(phraseBook->fileName()).baseName();
53 setWindowTitle(tr(
"Settings for '%1' - Qt Linguist").arg(fn));
59 QLocale::Language lang = QLocale::Language(lng.toInt());
60 if (lang != QLocale::C) {
61 const auto matches = QLocale::matchingLocales(lang, QLocale::AnyScript,
62 QLocale::AnyTerritory);
63 for (
const auto &loc : matches) {
64 QString name = QLocale::territoryToString(loc.territory());
65 if (loc.language() != QLocale::English) {
66 QString endonym = loc.nativeTerritoryName();
67 if (!endonym.isEmpty())
68 name = TranslationSettingsDialog::tr(
"%1 (%2)").arg(name, endonym);
70 combo->addItem(name, QVariant(loc.territory()));
72 combo->model()->sort(0, Qt::AscendingOrder);
74 combo->insertItem(0, TranslationSettingsDialog::tr(
"Any Territory"),
75 QVariant(QLocale::AnyTerritory));
76 combo->setCurrentIndex(0);
81 fillTerritoryCombo(m_ui.srcCbLanguageList->itemData(idx), m_ui.srcCbCountryList);
86 fillTerritoryCombo(m_ui.tgtCbLanguageList->itemData(idx), m_ui.tgtCbCountryList);
91 int itemindex = m_ui.tgtCbLanguageList->currentIndex();
92 QVariant var = m_ui.tgtCbLanguageList->itemData(itemindex);
93 QLocale::Language lang = QLocale::Language(var.toInt());
95 itemindex = m_ui.tgtCbCountryList->currentIndex();
96 var = m_ui.tgtCbCountryList->itemData(itemindex);
97 QLocale::Territory territory = QLocale::Territory(var.toInt());
99 itemindex = m_ui.srcCbLanguageList->currentIndex();
100 var = m_ui.srcCbLanguageList->itemData(itemindex);
101 QLocale::Language lang2 = QLocale::Language(var.toInt());
103 itemindex = m_ui.srcCbCountryList->currentIndex();
104 var = m_ui.srcCbCountryList->itemData(itemindex);
105 QLocale::Territory territory2 = QLocale::Territory(var.toInt());
108 m_phraseBook->setLanguageAndTerritory(lang, territory);
109 m_phraseBook->setSourceLanguageAndTerritory(lang2, territory2);
111 m_dataModel->setLanguageAndTerritory(lang, territory);
112 m_dataModel->setSourceLanguageAndTerritory(lang2, territory2);
120 QLocale::Language lang, lang2;
121 QLocale::Territory territory, territory2;
124 lang = m_phraseBook->language();
125 territory = m_phraseBook->territory();
126 lang2 = m_phraseBook->sourceLanguage();
127 territory2 = m_phraseBook->sourceTerritory();
129 lang = m_dataModel->language();
130 territory = m_dataModel->territory();
131 lang2 = m_dataModel->sourceLanguage();
132 territory2 = m_dataModel->sourceTerritory();
135 int itemindex = m_ui.tgtCbLanguageList->findData(QVariant(
int(lang)));
136 m_ui.tgtCbLanguageList->setCurrentIndex(itemindex == -1 ? 0 : itemindex);
138 itemindex = m_ui.tgtCbCountryList->findData(QVariant(
int(territory)));
139 m_ui.tgtCbCountryList->setCurrentIndex(itemindex == -1 ? 0 : itemindex);
141 itemindex = m_ui.srcCbLanguageList->findData(QVariant(
int(lang2)));
142 m_ui.srcCbLanguageList->setCurrentIndex(itemindex == -1 ? 0 : itemindex);
144 itemindex = m_ui.srcCbCountryList->findData(QVariant(
int(territory2)));
145 m_ui.srcCbCountryList->setCurrentIndex(itemindex == -1 ? 0 : itemindex);
void showEvent(QShowEvent *e) override
\reimp
void setDataModel(DataModel *model)
void setPhraseBook(PhraseBook *phraseBook)
static void fillTerritoryCombo(const QVariant &lng, QComboBox *combo)