Index: src/plugin/PluginSystem.cpp |
=================================================================== |
--- a/src/plugin/PluginSystem.cpp |
+++ b/src/plugin/PluginSystem.cpp |
@@ -1,40 +1,35 @@ |
#include "PluginStdAfx.h" |
+ |
#include "PluginSystem.h" |
#include "PluginClient.h" |
-#include <array> |
std::wstring GetBrowserLanguage() |
{ |
LANGID lcid = GetUserDefaultLangID(); |
+ wchar_t language[128]; |
+ memset(language, 0, sizeof(language)); |
+ wchar_t country[128]; |
+ memset(language, 0, sizeof(country)); |
+ |
std::wstring lang; |
- // we use `size() - 1` here to avoid additional calls to get the required size or to get the |
- // number of retrieved characters. |
+ int res = GetLocaleInfoW(lcid, LOCALE_SISO639LANGNAME, language, 127); |
+ if (res == 0) |
{ |
- std::array<wchar_t, 9> localeLanguage; |
- localeLanguage.fill(L'\0'); |
- int res = GetLocaleInfoW(lcid, LOCALE_SISO639LANGNAME, localeLanguage.data(), localeLanguage.size() - 1); |
- if (res == 0) |
- { |
- DEBUG_ERROR_LOG(::GetLastError(), PLUGIN_ERROR_SYSINFO, PLUGIN_ERROR_SYSINFO_BROWSER_LANGUAGE, "System::GetBrowserLang - Failed"); |
- } |
- else |
- { |
- lang += localeLanguage.data(); |
- } |
+ DEBUG_ERROR_LOG(::GetLastError(), PLUGIN_ERROR_SYSINFO, PLUGIN_ERROR_SYSINFO_BROWSER_LANGUAGE, "System::GetBrowserLang - Failed"); |
+ } |
+ else |
+ { |
+ lang += language; |
} |
lang += L"-"; |
+ res = GetLocaleInfoW(lcid, LOCALE_SISO3166CTRYNAME, country, 127); |
+ if (res == 0) |
{ |
- std::array<wchar_t, 9> localeCountry; |
- localeCountry.fill(L'\0'); |
- int res = GetLocaleInfoW(lcid, LOCALE_SISO3166CTRYNAME, localeCountry.data(), localeCountry.size() - 1); |
- if (res == 0) |
- { |
- DEBUG_ERROR_LOG(::GetLastError(), PLUGIN_ERROR_SYSINFO, PLUGIN_ERROR_SYSINFO_BROWSER_LANGUAGE, "System::GetBrowserLang - failed to retrieve country"); |
- } |
- else |
- { |
- lang += localeCountry.data(); |
- } |
+ DEBUG_ERROR_LOG(::GetLastError(), PLUGIN_ERROR_SYSINFO, PLUGIN_ERROR_SYSINFO_BROWSER_LANGUAGE, "System::GetBrowserLang - failed to retrieve country"); |
+ } |
+ else |
+ { |
+ lang += country; |
} |
return lang; |
} |