summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Solovev <ivan.solovev@qt.io>2022-08-29 13:14:50 +0200
committerIvan Solovev <ivan.solovev@qt.io>2022-09-07 10:22:07 +0200
commit157cb7cbcb5a8d148b25e43066b80edd71a1d1b9 (patch)
tree2b2f2748b179b7933206500ffc5d0f9c1753a010
parent9f52107c1c0c4915c61f487877f00c47930e59e0 (diff)
QtTools utils: port away from deprecated QLocale calls
That is required to propagate deprecation warnings to internal tools Also change QLocale::{Any}Country to QLocale::{Any}Territory. Task-number: QTBUG-105102 Change-Id: I3396d832cf4a98722ee9a10ed64dab263ba4eb0f Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
-rw-r--r--src/designer/src/lib/uilib/properties.cpp4
-rw-r--r--src/linguist/linguist/messagemodel.cpp27
-rw-r--r--src/linguist/linguist/phrase.cpp12
-rw-r--r--src/linguist/linguist/translationsettingsdialog.cpp24
-rw-r--r--src/linguist/lupdate/main.cpp2
-rw-r--r--src/linguist/shared/numerus.cpp33
-rw-r--r--src/linguist/shared/po.cpp2
-rw-r--r--src/linguist/shared/qm.cpp4
-rw-r--r--src/linguist/shared/translator.cpp16
9 files changed, 68 insertions, 56 deletions
diff --git a/src/designer/src/lib/uilib/properties.cpp b/src/designer/src/lib/uilib/properties.cpp
index 9fac4bacd..8e31bef7c 100644
--- a/src/designer/src/lib/uilib/properties.cpp
+++ b/src/designer/src/lib/uilib/properties.cpp
@@ -246,8 +246,8 @@ QVariant domPropertyToVariant(const DomProperty *p)
const DomLocale *locale = p->elementLocale();
return QVariant::fromValue(QLocale(enumKeyOfObjectToValue<QAbstractFormBuilderGadget, QLocale::Language>("language",
locale->attributeLanguage().toLatin1().constData()),
- enumKeyOfObjectToValue<QAbstractFormBuilderGadget, QLocale::Country>("country",
- locale->attributeCountry().toLatin1().constData())));
+ enumKeyOfObjectToValue<QAbstractFormBuilderGadget, QLocale::Territory>("country",
+ locale->attributeCountry().toLatin1().constData())));
}
case DomProperty::SizePolicy: {
const DomSizePolicy *sizep = p->elementSizePolicy();
diff --git a/src/linguist/linguist/messagemodel.cpp b/src/linguist/linguist/messagemodel.cpp
index 6b5448b55..35e157877 100644
--- a/src/linguist/linguist/messagemodel.cpp
+++ b/src/linguist/linguist/messagemodel.cpp
@@ -95,8 +95,8 @@ DataModel::DataModel(QObject *parent)
m_srcCharsSpc(0),
m_language(QLocale::Language(-1)),
m_sourceLanguage(QLocale::Language(-1)),
- m_country(QLocale::Country(-1)),
- m_sourceCountry(QLocale::Country(-1))
+ m_country(QLocale::Territory(-1)),
+ m_sourceCountry(QLocale::Territory(-1))
{}
QStringList DataModel::normalizedTranslations(const MessageItem &m) const
@@ -258,12 +258,12 @@ bool DataModel::load(const QString &fileName, bool *langGuessed, QWidget *parent
*langGuessed = true;
}
QLocale::Language l;
- QLocale::Country c;
+ QLocale::Territory c;
Translator::languageAndCountry(lang, &l, &c);
if (l == QLocale::C) {
QLocale sys;
l = sys.language();
- c = sys.country();
+ c = sys.territory();
*langGuessed = true;
}
if (!setLanguageAndCountry(l, c))
@@ -278,7 +278,7 @@ bool DataModel::load(const QString &fileName, bool *langGuessed, QWidget *parent
lang = tor.sourceLanguageCode();
if (lang.isEmpty()) {
l = QLocale::C;
- c = QLocale::AnyCountry;
+ c = QLocale::AnyTerritory;
} else {
Translator::languageAndCountry(lang, &l, &c);
}
@@ -360,7 +360,7 @@ void DataModel::doCharCounting(const QString &text, int &trW, int &trC, int &trC
}
}
-bool DataModel::setLanguageAndCountry(QLocale::Language lang, QLocale::Country country)
+bool DataModel::setLanguageAndCountry(QLocale::Language lang, QLocale::Territory country)
{
if (m_language == lang && m_country == country)
return true;
@@ -372,9 +372,18 @@ bool DataModel::setLanguageAndCountry(QLocale::Language lang, QLocale::Country c
QByteArray rules;
bool ok = getNumerusInfo(lang, country, &rules, &m_numerusForms, 0);
QLocale loc(lang, country);
- m_localizedLanguage = QLocale::countriesForLanguage(lang).size() > 1
+ // Add territory name if we couldn't match the (lang, country) combination,
+ // or if the language is used in more than one country.
+ const bool mentionTerritory = (loc.territory() != country) || [lang, country]() {
+ const auto locales = QLocale::matchingLocales(lang, QLocale::AnyScript,
+ QLocale::AnyTerritory);
+ return std::any_of(locales.cbegin(), locales.cend(), [country](const QLocale &locale) {
+ return locale.territory() != country;
+ });
+ }();
+ m_localizedLanguage = mentionTerritory
//: <language> (<country>)
- ? tr("%1 (%2)").arg(loc.nativeLanguageName(), loc.nativeCountryName())
+ ? tr("%1 (%2)").arg(loc.nativeLanguageName(), loc.nativeTerritoryName())
: loc.nativeLanguageName();
m_countRefNeeds.clear();
for (int i = 0; i < rules.size(); ++i) {
@@ -391,7 +400,7 @@ bool DataModel::setLanguageAndCountry(QLocale::Language lang, QLocale::Country c
return ok;
}
-void DataModel::setSourceLanguageAndCountry(QLocale::Language lang, QLocale::Country country)
+void DataModel::setSourceLanguageAndCountry(QLocale::Language lang, QLocale::Territory country)
{
if (m_sourceLanguage == lang && m_sourceCountry == country)
return;
diff --git a/src/linguist/linguist/phrase.cpp b/src/linguist/linguist/phrase.cpp
index d67d701b3..d10fc8bb2 100644
--- a/src/linguist/linguist/phrase.cpp
+++ b/src/linguist/linguist/phrase.cpp
@@ -164,8 +164,8 @@ PhraseBook::PhraseBook() :
m_changed(false),
m_language(QLocale::C),
m_sourceLanguage(QLocale::C),
- m_country(QLocale::AnyCountry),
- m_sourceCountry(QLocale::AnyCountry)
+ m_country(QLocale::AnyTerritory),
+ m_sourceCountry(QLocale::AnyTerritory)
{
}
@@ -174,7 +174,7 @@ PhraseBook::~PhraseBook()
qDeleteAll(m_phrases);
}
-void PhraseBook::setLanguageAndCountry(QLocale::Language lang, QLocale::Country country)
+void PhraseBook::setLanguageAndCountry(QLocale::Language lang, QLocale::Territory country)
{
if (m_language == lang && m_country == country)
return;
@@ -183,7 +183,7 @@ void PhraseBook::setLanguageAndCountry(QLocale::Language lang, QLocale::Country
setModified(true);
}
-void PhraseBook::setSourceLanguageAndCountry(QLocale::Language lang, QLocale::Country country)
+void PhraseBook::setSourceLanguageAndCountry(QLocale::Language lang, QLocale::Territory country)
{
if (m_sourceLanguage == lang && m_sourceCountry == country)
return;
@@ -210,14 +210,14 @@ bool PhraseBook::load(const QString &fileName, bool *langGuessed)
if (m_language == QLocale::C) {
QLocale sys;
m_language = sys.language();
- m_country = sys.country();
+ m_country = sys.territory();
*langGuessed = true;
}
QString lang = hand->sourceLanguage();
if (lang.isEmpty()) {
m_sourceLanguage = QLocale::C;
- m_sourceCountry = QLocale::AnyCountry;
+ m_sourceCountry = QLocale::AnyTerritory;
} else {
Translator::languageAndCountry(lang, &m_sourceLanguage, &m_sourceCountry);
}
diff --git a/src/linguist/linguist/translationsettingsdialog.cpp b/src/linguist/linguist/translationsettingsdialog.cpp
index 17112d60e..72aaa3e21 100644
--- a/src/linguist/linguist/translationsettingsdialog.cpp
+++ b/src/linguist/linguist/translationsettingsdialog.cpp
@@ -56,19 +56,21 @@ static void fillCountryCombo(const QVariant &lng, QComboBox *combo)
combo->clear();
QLocale::Language lang = QLocale::Language(lng.toInt());
if (lang != QLocale::C) {
- for (QLocale::Country cntr : QLocale::countriesForLanguage(lang)) {
- QString country = QLocale::countryToString(cntr);
- auto loc = QLocale(lang, cntr);
+ const auto matches = QLocale::matchingLocales(lang, QLocale::AnyScript,
+ QLocale::AnyTerritory);
+ for (const auto &loc : matches) {
+ QString name = QLocale::territoryToString(loc.territory());
if (loc.language() != QLocale::English) {
- QString ncn = loc.nativeCountryName();
- if (!ncn.isEmpty())
- country = TranslationSettingsDialog::tr("%1 (%2)").arg(country, ncn);
+ QString endonym = loc.nativeTerritoryName();
+ if (!endonym.isEmpty())
+ name = TranslationSettingsDialog::tr("%1 (%2)").arg(name, endonym);
}
- combo->addItem(country, QVariant(cntr));
+ combo->addItem(name, QVariant(loc.territory()));
}
combo->model()->sort(0, Qt::AscendingOrder);
}
- combo->insertItem(0, TranslationSettingsDialog::tr("Any Country"), QVariant(QLocale::AnyCountry));
+ combo->insertItem(0, TranslationSettingsDialog::tr("Any Country"),
+ QVariant(QLocale::AnyTerritory));
combo->setCurrentIndex(0);
}
@@ -90,7 +92,7 @@ void TranslationSettingsDialog::on_buttonBox_accepted()
itemindex = m_ui.tgtCbCountryList->currentIndex();
var = m_ui.tgtCbCountryList->itemData(itemindex);
- QLocale::Country country = QLocale::Country(var.toInt());
+ QLocale::Territory country = QLocale::Territory(var.toInt());
itemindex = m_ui.srcCbLanguageList->currentIndex();
var = m_ui.srcCbLanguageList->itemData(itemindex);
@@ -98,7 +100,7 @@ void TranslationSettingsDialog::on_buttonBox_accepted()
itemindex = m_ui.srcCbCountryList->currentIndex();
var = m_ui.srcCbCountryList->itemData(itemindex);
- QLocale::Country country2 = QLocale::Country(var.toInt());
+ QLocale::Territory country2 = QLocale::Territory(var.toInt());
if (m_phraseBook) {
m_phraseBook->setLanguageAndCountry(lang, country);
@@ -114,7 +116,7 @@ void TranslationSettingsDialog::on_buttonBox_accepted()
void TranslationSettingsDialog::showEvent(QShowEvent *)
{
QLocale::Language lang, lang2;
- QLocale::Country country, country2;
+ QLocale::Territory country, country2;
if (m_phraseBook) {
lang = m_phraseBook->language();
diff --git a/src/linguist/lupdate/main.cpp b/src/linguist/lupdate/main.cpp
index 0b0a88030..d4e72ee4b 100644
--- a/src/linguist/lupdate/main.cpp
+++ b/src/linguist/lupdate/main.cpp
@@ -381,7 +381,7 @@ static void updateTsFiles(const Translator &fetchedTor, const QStringList &tsFil
// (when the language is not recognized, plural translations are lost)
if (tor.translationsExist()) {
QLocale::Language l;
- QLocale::Country c;
+ QLocale::Territory c;
tor.languageAndCountry(tor.languageCode(), &l, &c);
QStringList forms;
if (!getNumerusInfo(l, c, 0, &forms, 0)) {
diff --git a/src/linguist/shared/numerus.cpp b/src/linguist/shared/numerus.cpp
index bcd8f842d..ef52bcdb6 100644
--- a/src/linguist/shared/numerus.cpp
+++ b/src/linguist/shared/numerus.cpp
@@ -265,22 +265,22 @@ static const QLocale::Language welshLanguage[] = { QLocale::Welsh, EOL };
static const QLocale::Language arabicLanguage[] = { QLocale::Arabic, EOL };
static const QLocale::Language tagalogLanguage[] = { QLocale::Filipino, EOL };
-static const QLocale::Country frenchStyleCountries[] = {
+static const QLocale::Territory frenchStyleCountries[] = {
// keep synchronized with frenchStyleLanguages
- QLocale::AnyCountry,
- QLocale::AnyCountry,
- QLocale::AnyCountry,
+ QLocale::AnyTerritory,
+ QLocale::AnyTerritory,
+ QLocale::AnyTerritory,
QLocale::Brazil,
- QLocale::AnyCountry,
- QLocale::AnyCountry,
- QLocale::AnyCountry
+ QLocale::AnyTerritory,
+ QLocale::AnyTerritory,
+ QLocale::AnyTerritory
};
struct NumerusTableEntry {
const uchar *rules;
int rulesSize;
const char * const *forms;
const QLocale::Language *languages;
- const QLocale::Country *countries;
+ const QLocale::Territory *countries;
const char * const gettextRules;
};
@@ -324,7 +324,7 @@ static const NumerusTableEntry numerusTable[] = {
static const int NumerusTableSize = sizeof(numerusTable) / sizeof(numerusTable[0]);
-bool getNumerusInfo(QLocale::Language language, QLocale::Country country,
+bool getNumerusInfo(QLocale::Language language, QLocale::Territory country,
QByteArray *rules, QStringList *forms, const char **gettextRules)
{
while (true) {
@@ -332,7 +332,7 @@ bool getNumerusInfo(QLocale::Language language, QLocale::Country country,
const NumerusTableEntry &entry = numerusTable[i];
for (int j = 0; entry.languages[j] != EOL; ++j) {
if (entry.languages[j] == language
- && ((!entry.countries && country == QLocale::AnyCountry)
+ && ((!entry.countries && country == QLocale::AnyTerritory)
|| (entry.countries && entry.countries[j] == country))) {
if (rules) {
*rules = QByteArray::fromRawData(reinterpret_cast<const char *>(entry.rules),
@@ -350,9 +350,9 @@ bool getNumerusInfo(QLocale::Language language, QLocale::Country country,
}
}
- if (country == QLocale::AnyCountry)
+ if (country == QLocale::AnyTerritory)
break;
- country = QLocale::AnyCountry;
+ country = QLocale::AnyTerritory;
}
return false;
}
@@ -364,14 +364,15 @@ QString getNumerusInfoString()
for (int i = 0; i < NumerusTableSize; ++i) {
const NumerusTableEntry &entry = numerusTable[i];
for (int j = 0; entry.languages[j] != EOL; ++j) {
- QLocale loc(entry.languages[j], entry.countries ? entry.countries[j] : QLocale::AnyCountry);
+ QLocale loc(entry.languages[j], entry.countries ? entry.countries[j]
+ : QLocale::AnyTerritory);
QString lang = QLocale::languageToString(entry.languages[j]);
if (loc.language() == QLocale::C)
lang += QLatin1String(" (!!!)");
- else if (entry.countries && entry.countries[j] != QLocale::AnyCountry)
- lang += QLatin1String(" (") + QLocale::countryToString(loc.country()) + QLatin1Char(')');
+ else if (entry.countries && entry.countries[j] != QLocale::AnyTerritory)
+ lang += QLatin1String(" (%1)").arg(QLocale::territoryToString(loc.territory()));
else
- lang += QLatin1String(" [") + QLocale::countryToString(loc.country()) + QLatin1Char(']');
+ lang += QLatin1String(" [%1]").arg(QLocale::territoryToString(loc.territory()));
langs << QString::fromLatin1("%1 %2 %3\n").arg(lang, -40).arg(loc.name(), -8)
.arg(QString::fromLatin1(entry.gettextRules));
}
diff --git a/src/linguist/shared/po.cpp b/src/linguist/shared/po.cpp
index 681f69f21..a3c47d7c0 100644
--- a/src/linguist/shared/po.cpp
+++ b/src/linguist/shared/po.cpp
@@ -729,7 +729,7 @@ bool savePO(const Translator &translator, QIODevice &dev, ConversionData &)
addPoHeader(headers, hdrOrder, "Content-Transfer-Encoding", QLatin1String("8bit"));
if (!translator.languageCode().isEmpty()) {
QLocale::Language l;
- QLocale::Country c;
+ QLocale::Territory c;
Translator::languageAndCountry(translator.languageCode(), &l, &c);
const char *gettextRules;
if (getNumerusInfo(l, c, 0, 0, &gettextRules))
diff --git a/src/linguist/shared/qm.cpp b/src/linguist/shared/qm.cpp
index 5ec984f22..37075294d 100644
--- a/src/linguist/shared/qm.cpp
+++ b/src/linguist/shared/qm.cpp
@@ -498,7 +498,7 @@ bool loadQM(Translator &translator, QIODevice &dev, ConversionData &cd)
QString strProN = QLatin1String("%n");
QLocale::Language l;
- QLocale::Country c;
+ QLocale::Territory c;
Translator::languageAndCountry(translator.languageCode(), &l, &c);
QStringList numerusForms;
bool guessPlurals = true;
@@ -620,7 +620,7 @@ bool saveQM(const Translator &translator, QIODevice &dev, ConversionData &cd)
{
Releaser releaser(translator.languageCode());
QLocale::Language l;
- QLocale::Country c;
+ QLocale::Territory c;
Translator::languageAndCountry(translator.languageCode(), &l, &c);
QByteArray rules;
if (getNumerusInfo(l, c, &rules, 0, 0))
diff --git a/src/linguist/shared/translator.cpp b/src/linguist/shared/translator.cpp
index a258dd32c..6ac1aa08e 100644
--- a/src/linguist/shared/translator.cpp
+++ b/src/linguist/shared/translator.cpp
@@ -324,28 +324,28 @@ bool Translator::save(const QString &filename, ConversionData &cd, const QString
return false;
}
-QString Translator::makeLanguageCode(QLocale::Language language, QLocale::Country country)
+QString Translator::makeLanguageCode(QLocale::Language language, QLocale::Territory country)
{
QString result = QLocale::languageToCode(language);
- if (language != QLocale::C && country != QLocale::AnyCountry) {
+ if (language != QLocale::C && country != QLocale::AnyTerritory) {
result.append(QLatin1Char('_'));
- result.append(QLocale::countryToCode(country));
+ result.append(QLocale::territoryToCode(country));
}
return result;
}
void Translator::languageAndCountry(QStringView languageCode, QLocale::Language *langPtr,
- QLocale::Country *countryPtr)
+ QLocale::Territory *countryPtr)
{
QLocale::Language language = QLocale::AnyLanguage;
- QLocale::Country country = QLocale::AnyCountry;
+ QLocale::Territory country = QLocale::AnyTerritory;
const auto underScore = languageCode.indexOf(u'_'); // "de_DE"
if (underScore != -1) {
language = QLocale::codeToLanguage(languageCode.left(underScore));
- country = QLocale::codeToCountry(languageCode.mid(underScore + 1));
+ country = QLocale::codeToTerritory(languageCode.mid(underScore + 1));
} else {
language = QLocale::codeToLanguage(languageCode);
- country = QLocale(language).country();
+ country = QLocale(language).territory();
}
if (langPtr)
@@ -671,7 +671,7 @@ void Translator::normalizeTranslations(ConversionData &cd)
{
bool truncated = false;
QLocale::Language l;
- QLocale::Country c;
+ QLocale::Territory c;
languageAndCountry(languageCode(), &l, &c);
int numPlurals = 1;
if (l != QLocale::C) {