diff options
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/src/main.cpp b/src/main.cpp index f4739767..1dbf1d5e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -42,6 +42,11 @@ int main(int argc, char* argv[]) { QApplication app(argc, argv); QApplication::setWindowIcon(QIcon(":gpgfrontend.png")); +#ifdef MACOS + // support retina screen + QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); +#endif + // logging system init_logging(); @@ -55,7 +60,7 @@ int main(int argc, char* argv[]) { // unicode in source QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf-8")); -#ifdef WINDOWS +#if !defined(RELEASE) // css QFile file(RESOURCE_DIR(qApp->applicationDirPath()) + "/css/default.qss"); file.open(QFile::ReadOnly); @@ -142,13 +147,13 @@ void init_locale() { .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; -#ifndef WINDOWS auto language = getenv("LANGUAGE"); // set LANGUAGE std::string language_env = language == nullptr ? "en" : language; @@ -157,13 +162,32 @@ void init_locale() { if (setenv("LANGUAGE", language_env.c_str(), 1)) { LOG(WARNING) << "set LANGUAGE failed" << language_env; }; -#endif } +#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::UI::GlobalSettingStation::GetInstance() .GetLocaleDir() .string() .c_str()); + bind_textdomain_codeset(PROJECT_NAME, "utf-8"); textdomain(PROJECT_NAME); } |