diff options
author | saturneric <[email protected]> | 2024-01-16 13:35:59 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2024-01-16 13:35:59 +0000 |
commit | 620ae9e7c1a8b2db2515c080416cb592066e5fec (patch) | |
tree | 900f3e55118aa2a5049d99dd743d3e595016fc7b /src/ui/GpgFrontendUIInit.cpp | |
parent | fix: make task and threading system safer (diff) | |
download | GpgFrontend-620ae9e7c1a8b2db2515c080416cb592066e5fec.tar.gz GpgFrontend-620ae9e7c1a8b2db2515c080416cb592066e5fec.zip |
refactor: remove libgettext from project
Diffstat (limited to 'src/ui/GpgFrontendUIInit.cpp')
-rw-r--r-- | src/ui/GpgFrontendUIInit.cpp | 63 |
1 files changed, 15 insertions, 48 deletions
diff --git a/src/ui/GpgFrontendUIInit.cpp b/src/ui/GpgFrontendUIInit.cpp index cf48e14d..64c316b9 100644 --- a/src/ui/GpgFrontendUIInit.cpp +++ b/src/ui/GpgFrontendUIInit.cpp @@ -49,12 +49,12 @@ void WaitEnvCheckingProcess() { auto* waiting_dialog = new QProgressDialog(); waiting_dialog->setMaximum(0); waiting_dialog->setMinimum(0); - auto* waiting_dialog_label = - new QLabel(QString(_("Loading Gnupg Info...")) + "<br /><br />" + - _("If this process is too slow, please set the key " - "server address appropriately in the gnupg configuration " - "file (depending " - "on the network situation in your country or region).")); + auto* waiting_dialog_label = new QLabel( + QObject::tr("Loading Gnupg Info...") + "<br /><br />" + + QObject::tr("If this process is too slow, please set the key " + "server address appropriately in the gnupg configuration " + "file (depending " + "on the network situation in your country or region).")); waiting_dialog_label->setWordWrap(true); waiting_dialog->setLabel(waiting_dialog_label); waiting_dialog->resize(420, 120); @@ -221,56 +221,23 @@ void InitLocale() { auto settings = GpgFrontend::GlobalSettingStation::GetInstance().GetSettings(); - GF_UI_LOG_INFO("current system locale: {}", setlocale(LC_ALL, nullptr)); + GF_UI_LOG_INFO("current system locale: {}", QLocale().name()); // read from settings file auto lang = settings.value("basic/lang").toString(); - GF_UI_LOG_INFO("current language settings: {}", lang); + GF_UI_LOG_INFO("current custom locale settings: {}", lang); GF_UI_LOG_INFO( "current locales path: {}", GpgFrontend::GlobalSettingStation::GetInstance().GetLocaleDir()); -#ifndef WINDOWS - if (!lang.isEmpty()) { - auto lc = (lang + ".UTF-8").toUtf8(); - - // set LC_ALL - auto* locale_name = std::setlocale(LC_ALL, lc.constData()); - if (locale_name == nullptr) GF_UI_LOG_WARN("set LC_ALL failed, lc: {}", lc); - auto* language = getenv("LANGUAGE"); - // set LANGUAGE - QString language_env = language == nullptr ? "en" : language; - language_env.insert(0, lang + ":"); - GF_UI_LOG_DEBUG("language env: {}", language_env); - if (setenv("LANGUAGE", language_env.toUtf8(), 1) != 0) { - GF_UI_LOG_WARN("set LANGUAGE {} failed", language_env); - }; + auto target_locale = lang.isEmpty() ? QLocale() : QLocale(lang); + auto* translator = new QTranslator(QCoreApplication::instance()); + if (translator->load(target_locale, QLatin1String(PROJECT_NAME), + QLatin1String("."), QLatin1String(":/i18n"), + QLatin1String(".qm"))) { + GF_UI_LOG_INFO("load target translation file done"); + QCoreApplication::installTranslator(translator); } -#else - if (!lang.empty()) { - auto lc = lang.toUtf8(); - - // set LC_ALL - auto* locale_name = setlocale(LC_ALL, lc); - if (locale_name == nullptr) GF_UI_LOG_WARN("set LC_ALL failed, lc: {}", lc); - - auto language = getenv("LANGUAGE"); - // set LANGUAGE - QString language_env = language == nullptr ? "en" : language; - language_env.insert(0, lang + ":"); - language_env.insert(0, "LANGUAGE="); - GF_UI_LOG_DEBUG("language env: {}", language_env); - if (putenv(language_env.toUtf8())) { - GF_UI_LOG_WARN("set LANGUAGE {} failed", language_env); - }; - } -#endif - - bindtextdomain( - PROJECT_NAME, - GpgFrontend::GlobalSettingStation::GetInstance().GetLocaleDir().toUtf8()); - bind_textdomain_codeset(PROJECT_NAME, "utf-8"); - textdomain(PROJECT_NAME); } } // namespace GpgFrontend::UI |