@@ -457,6 +457,8 @@ static void parse_locale_name( const WCHAR *str, struct locale_name *name )
static const WCHAR cW[] = {'C',0};
static const WCHAR latinW[] = {'l','a','t','i','n',0};
static const WCHAR latnW[] = {'-','L','a','t','n',0};
static const WCHAR HantW[] = {'-','H','a','n','t',0};
static const WCHAR HansW[] = {'-','H','a','n','s',0};
WCHAR *p;
TRACE("%s\n", debugstr_w(str));
@@ -487,6 +489,16 @@ static void parse_locale_name( const WCHAR *str, struct locale_name *name )
else if (*p == '-') /* Windows format */
{
strcpyW( name->win_name, name->lang );
Well, no, that's not how it works. Did you explore a possibility if
adding hant/hans specific locale data to kernel32/nls will help?