From 93d48d07c7189e1dc465a7ccd8b5c909df9ffebe Mon Sep 17 00:00:00 2001 From: Tuomo Pelkonen Date: Mon, 10 Jan 2022 18:06:48 +0200 Subject: [PATCH] Multilanguage: Add utility to get language names consistently There are multiple places that language codes are converted to language names each doing it a different way. To make this consistent, we need to have a single implementation for it. Change-Id: I2aeaf5b7c9203e8a41a61420f4c98e1fce491db5 Reviewed-by: Reviewed-by: hjk Reviewed-by: Eike Ziller Reviewed-by: Qt CI Bot --- src/libs/utils/stringutils.cpp | 13 +++++++++++++ src/libs/utils/stringutils.h | 3 +++ 2 files changed, 16 insertions(+) diff --git a/src/libs/utils/stringutils.cpp b/src/libs/utils/stringutils.cpp index 9d179a9abd2..ba664b1b700 100644 --- a/src/libs/utils/stringutils.cpp +++ b/src/libs/utils/stringutils.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -464,4 +465,16 @@ QString wildcardToRegularExpression(const QString &original) return "\\A" + rx + "\\z"; #endif } + +QTCREATOR_UTILS_EXPORT QString languageNameFromLanguageCode(const QString &languageCode) +{ + QLocale locale(languageCode); + QString languageName = QLocale::languageToString(locale.language()); + QString nativeLanguageName = locale.nativeLanguageName().simplified(); + + if (!nativeLanguageName.isEmpty() && languageName != nativeLanguageName) + languageName += " - " + locale.nativeLanguageName(); + return languageName; +} + } // namespace Utils diff --git a/src/libs/utils/stringutils.h b/src/libs/utils/stringutils.h index e6583c8eb3d..9a8cf8f964c 100644 --- a/src/libs/utils/stringutils.h +++ b/src/libs/utils/stringutils.h @@ -121,4 +121,7 @@ QTCREATOR_UTILS_EXPORT QString formatElapsedTime(qint64 elapsed); * into account and handling them to disallow matching a wildcard characters. */ QTCREATOR_UTILS_EXPORT QString wildcardToRegularExpression(const QString &original); + +QTCREATOR_UTILS_EXPORT QString languageNameFromLanguageCode(const QString &languageCode); + } // namespace Utils