如何使用QLocale区分传统和简体中文

时间:2015-03-06 07:04:46

标签: qt qlocale

我必须显示可供用户选择的语言列表。该列表将具有(自动)作为操作系统语言的第一个选项,并将具有其他语言作为附加组件。

as shown here

这里的英语是自动语言。

问题在于,如果OS语言是中文,我如何区分简化和传统。我的代码是:

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 个答案:

没有答案