diff options
author | Saturneric <[email protected]> | 2022-05-09 16:33:50 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2022-05-09 16:33:50 +0000 |
commit | 47abca2607c8ec0ee50a67001707cabdf2b6608e (patch) | |
tree | 46a0235ea8bc33794d248e1916060321fb2c3750 /src/init.cpp | |
parent | fix: modified init order (diff) | |
download | GpgFrontend-47abca2607c8ec0ee50a67001707cabdf2b6608e.tar.gz GpgFrontend-47abca2607c8ec0ee50a67001707cabdf2b6608e.zip |
feat: improve UI library's encapsulation
Diffstat (limited to 'src/init.cpp')
-rw-r--r-- | src/init.cpp | 84 |
1 files changed, 1 insertions, 83 deletions
diff --git a/src/init.cpp b/src/init.cpp index 7aefc00f..2f4955f5 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -47,86 +47,4 @@ std::vector<std::filesystem::path> get_files_of_directory( } } return path_list; -} - -/** - * @brief setup the locale and load the translations - * - */ -void init_locale() { - // get the instance of the GlobalSettingStation - auto& settings = - GpgFrontend::GlobalSettingStation::GetInstance().GetUISettings(); - - // create general settings if not exist - if (!settings.exists("general") || - settings.lookup("general").getType() != libconfig::Setting::TypeGroup) - settings.add("general", libconfig::Setting::TypeGroup); - - // set system default at first - auto& general = settings["general"]; - if (!general.exists("lang")) - general.add("lang", libconfig::Setting::TypeString) = ""; - - // sync the settings to the file - GpgFrontend::GlobalSettingStation::GetInstance().SyncSettings(); - - LOG(INFO) << "current system locale" << setlocale(LC_ALL, nullptr); - - // read from settings file - std::string lang; - if (!general.lookupValue("lang", lang)) { - LOG(ERROR) << _("could not read properly from configure file"); - }; - - LOG(INFO) << "lang from settings" << lang; - LOG(INFO) << "project name" << PROJECT_NAME; - LOG(INFO) << "locales path" - << GpgFrontend::GlobalSettingStation::GetInstance() - .GetLocaleDir() - .c_str(); - -#ifndef WINDOWS - if (!lang.empty()) { - std::string lc = lang.empty() ? "" : lang + ".UTF-8"; - - // set LC_ALL - auto* locale_name = setlocale(LC_ALL, lc.c_str()); - if (locale_name == nullptr) LOG(WARNING) << "set LC_ALL failed" << lc; - auto language = getenv("LANGUAGE"); - // set LANGUAGE - std::string language_env = language == nullptr ? "en" : language; - language_env.insert(0, lang + ":"); - LOG(INFO) << "language env" << language_env; - if (setenv("LANGUAGE", language_env.c_str(), 1)) { - LOG(WARNING) << "set LANGUAGE failed" << language_env; - }; - } -#else - if (!lang.empty()) { - std::string lc = lang.empty() ? "" : lang; - - // set LC_ALL - auto* locale_name = setlocale(LC_ALL, lc.c_str()); - if (locale_name == nullptr) LOG(WARNING) << "set LC_ALL failed" << lc; - - auto language = getenv("LANGUAGE"); - // set LANGUAGE - std::string language_env = language == nullptr ? "en" : language; - language_env.insert(0, lang + ":"); - language_env.insert(0, "LANGUAGE="); - LOG(INFO) << "language env" << language_env; - if (putenv(language_env.c_str())) { - LOG(WARNING) << "set LANGUAGE failed" << language_env; - }; - } -#endif - - bindtextdomain(PROJECT_NAME, - GpgFrontend::GlobalSettingStation::GetInstance() - .GetLocaleDir() - .u8string() - .c_str()); - bind_textdomain_codeset(PROJECT_NAME, "utf-8"); - textdomain(PROJECT_NAME); -} +}
\ No newline at end of file |