From c7f9c64e1c920ed00f434a4acc9e687a9070208b Mon Sep 17 00:00:00 2001 From: tanyulong2021 Date: Fri, 17 Mar 2023 09:50:56 +0800 Subject: [PATCH] Fix terminal garbled characters when not root user change locale language --- plugins/time-language/area/area.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/time-language/area/area.cpp b/plugins/time-language/area/area.cpp index df6834d..58704ec 100644 --- a/plugins/time-language/area/area.cpp +++ b/plugins/time-language/area/area.cpp @@ -184,7 +184,7 @@ void Area::initLanguage() QStringList res = getUserDefaultLanguage(); QString lang = res.at(1); - int langIndex = lang.split(':').at(0) == "zh_CN" ? 0 : 1; + int langIndex = lang.split(':').at(0) == "zh_CN.UTF-8" ? 0 : 1; if (0 == langIndex) { chineseFrame->showSelectedIcon(true); @@ -201,13 +201,13 @@ void Area::initLanguage() connect(chineseFrame, &LanguageFrame::clicked, this, [=](){ englishFrame->showSelectedIcon(false); - m_areaInterface->call("SetLanguage","zh_CN"); + m_areaInterface->call("SetLanguage","zh_CN.UTF-8"); showMessageBox(2); }); connect(englishFrame, &LanguageFrame::clicked, this, [=](){ chineseFrame->showSelectedIcon(false); - m_areaInterface->call("SetLanguage","en_US"); + m_areaInterface->call("SetLanguage","en_US.UTF-8"); showMessageBox(2); }); } @@ -218,7 +218,7 @@ void Area::initComponent() { QStringList res = getUserDefaultLanguage(); QString lang = res.at(1); - int langIndex = lang.split(':').at(0) == "zh_CN" ? 1 : 0; + int langIndex = lang.split(':').at(0) == "zh_CN.UTF-8" ? 1 : 0; int formatIndex = res.at(0) == "zh_CN.UTF-8" ? 1 : 0; // ui->langcomboBox->setCurrentIndex(langIndex); ui->countrycomboBox->setCurrentIndex(formatIndex); @@ -344,6 +344,8 @@ QStringList Area::getUserDefaultLanguage() { } if(language.isEmpty() && propertyMap.keys().contains("Language")) { language = propertyMap.find("Language").value().toString(); + if(language.isEmpty()) + language = QLocale::system().name()+ ".UTF-8"; } } else { qDebug() << "reply failed"; -- 2.33.0