diff --git a/src/language.cpp b/src/language.cpp index 9de8e1e89c4..1b60e5d5263 100644 --- a/src/language.cpp +++ b/src/language.cpp @@ -210,17 +210,15 @@ static void wesnoth_setlocale(int category, std::string slocale, #endif #ifdef _WIN32 - std::string env = "LANG=" + slocale; - _putenv(env.c_str()); - env = "LC_ALL=" + slocale; - _putenv(env.c_str()); std::string win_locale = locale; win_locale = win_locale.substr(0,2); #include "language_win32.ii" - SetEnvironmentVariable("LANG", win_locale.c_str()); - SetEnvironmentVariable("LC_ALL", win_locale.c_str()); - if(category == LC_MESSAGES) - category = LC_ALL; + if(category == LC_MESSAGES) { + std::string env = "LANG=" + slocale; + _putenv(env.c_str()); + SetEnvironmentVariable("LANG", win_locale.c_str()); + return; + } locale = win_locale.c_str(); #endif @@ -296,6 +294,10 @@ static void wesnoth_setlocale(int category, std::string slocale, << locale << "'.\n"; else LOG_GENERAL << "set locale to '" << (try_loc.get()) << "' result: '" << res <<"'\n"; + + DBG_GENERAL << "Numeric locale: " << std::setlocale(LC_NUMERIC, NULL) << '\n'; + DBG_GENERAL << "Full locale: " << std::setlocale(LC_ALL, NULL) << '\n'; + } bool set_language(const language_def& locale)