1

ユーザーが選択できる言語のリストを表示する必要があります。リストには、オペレーティング システムの言語である最初のオプションとして (自動) があり、アドオンとしてその他の言語があります。

ここに示すように

ここでは、英語が自動言語です。

ここでの問題は、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() が適切な値を返さないのはなぜですか?

4

0 に答える 0