// The user default locale could be loaded, we need to convert from WIN32's default of UTF16 to UTF8
charutf8Buffer[12]{};
// We only handle 5 character locales (lang2-region2), so don't bother reading past that. This does leave the resulting string unterminated but the buffer was zero initialised anyway.
// GetUserDefaultLocaleName could return an ISO 639-2/T string (three letter language code) or even an arbitrary custom locale, however we only handle 639-1 (two letter language code) locale names when checking the fallback language.
if(utf8Buffer[2]=='-'){
// if a region is included in the locale do a simple transformation to the expected POSIX style.