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