aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/GpgFrontendUIInit.cpp
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2024-01-16 13:35:59 +0000
committersaturneric <[email protected]>2024-01-16 13:35:59 +0000
commit620ae9e7c1a8b2db2515c080416cb592066e5fec (patch)
tree900f3e55118aa2a5049d99dd743d3e595016fc7b /src/ui/GpgFrontendUIInit.cpp
parentfix: make task and threading system safer (diff)
downloadGpgFrontend-620ae9e7c1a8b2db2515c080416cb592066e5fec.tar.gz
GpgFrontend-620ae9e7c1a8b2db2515c080416cb592066e5fec.zip
refactor: remove libgettext from project
Diffstat (limited to 'src/ui/GpgFrontendUIInit.cpp')
-rw-r--r--src/ui/GpgFrontendUIInit.cpp63
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