Как различить традиционный и упрощенный китайский с помощью QLocale

Я должен показать список языков, доступных для выбора пользователем. Список будет иметь (Авто) в качестве первого варианта, который является языком операционной системы и будет иметь дополнительные языки в качестве дополнения.

как показано здесь

Здесь английский - это автоматический язык.

Проблема здесь в том, что если язык ОС - китайский, как мне отличить упрощенный язык от традиционного. Мой код:

QLocale loc = QLocale::system();
QString defaultLocale = loc.name();       // e.g. "de_DE"
defaultLocale.truncate(defaultLocale.lastIndexOf('_')); // e.g. "de"
QStringList languageList;
languageList.append("auto (System language)");
if(defaultLocale != "de")
    languageList.append("German");
if(defaultLocale != "en")
    languageList.append("English");
if(defaultLocale != "fr")
    languageList.append("French");
if(defaultLocale != "it")
    languageList.append("Italian");
if(defaultLocale != "es")
    languageList.append("Spanish");
if(defaultLocale != "zh")
{
    languageList.append("Chinese Simple");
    languageList.append("Chinese Traditional");
}
if(defaultLocale == "zh") 
{
    if(loc.script() == QLocale::SimplifiedChineseScript)
        languageList.append("Chinese Traditional");
    else
        languageList.append("Chinese Simple");
}
if(defaultLocale != "ja")
    languageList.append("Japanese");

Здесь loc.script() всегда возвращает 0, указывая опцию "Любой скрипт". Если язык операционной системы - китайский, то как мне отличить упрощенный язык от традиционного? и почему script () не возвращает правильное значение?

0 ответов

Другие вопросы по тегам