diff options
Diffstat (limited to 'tools/linguist/shared/numerus.cpp')
-rw-r--r-- | tools/linguist/shared/numerus.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tools/linguist/shared/numerus.cpp b/tools/linguist/shared/numerus.cpp index 87f3aee..1ab300c 100644 --- a/tools/linguist/shared/numerus.cpp +++ b/tools/linguist/shared/numerus.cpp @@ -394,4 +394,27 @@ bool getNumerusInfo(QLocale::Language language, QLocale::Country country, return false; } +QString getNumerusInfoString() +{ + QStringList langs; + + 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); + 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 + lang += QLatin1String(" [") + QLocale::countryToString(loc.country()) + QLatin1Char(']'); + langs << QString::fromLatin1("%1 %2 %3\n").arg(lang, -40).arg(loc.name(), -8) + .arg(QString::fromLatin1(entry.gettextRules)); + } + } + langs.sort(); + return langs.join(QString()); +} + QT_END_NAMESPACE |