Hello SGaist, Thanks for your response. I expect for Serbian (Cyrillic, Serbia) to get: 2 (QLocale::Script::CyrillicScript) from QLocale::system().script(), and "sr-Cyrl-RS" from QLocale::system().bcp47Name(). Similarly, for Serbian (Latin, Serbia) I expect: 7 (QLocale::Script::LatinScript) from QLocale::system().script(), and "sr-Latn-RS" from QLocale::system().bcp47Name(). Should I open new bugs for script() and bcp47Name()? This is the workaround I made for bcp47Name: QString bcp47Name; #ifdef Q_OS_WIN wchar_t buffer[LOCALE_NAME_MAX_LENGTH]; ::GetUserDefaultLocaleName(buffer, LOCALE_NAME_MAX_LENGTH); bcp47Name = QString::fromWCharArray(buffer); #else bcp47Name = QLocale::system().bcp47Name(); #endif But didn't have a chance to try it on non-Windows platforms yet. Thanks!