summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/os/windows/win32.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/os/windows/win32.cpp b/src/os/windows/win32.cpp
index 3f72d1e72..073f70b98 100644
--- a/src/os/windows/win32.cpp
+++ b/src/os/windows/win32.cpp
@@ -629,9 +629,12 @@ wchar_t *convert_to_fs(const char *name, wchar_t *system_buf, size_t buflen)
/** Determine the current user's locale. */
const char *GetCurrentLocale(const char *)
{
+ const LANGID userUiLang = GetUserDefaultUILanguage();
+ const LCID userUiLocale = MAKELCID(userUiLang, SORT_DEFAULT);
+
char lang[9], country[9];
- if (GetLocaleInfoA(LOCALE_USER_DEFAULT, LOCALE_SISO639LANGNAME, lang, lengthof(lang)) == 0 ||
- GetLocaleInfoA(LOCALE_USER_DEFAULT, LOCALE_SISO3166CTRYNAME, country, lengthof(country)) == 0) {
+ if (GetLocaleInfoA(userUiLocale, LOCALE_SISO639LANGNAME, lang, lengthof(lang)) == 0 ||
+ GetLocaleInfoA(userUiLocale, LOCALE_SISO3166CTRYNAME, country, lengthof(country)) == 0) {
/* Unable to retrieve the locale. */
return nullptr;
}