[Bug 47277] .NET 4.x WPF applications fail to start with 'zh_CN' locale and WinVer set to 'Windows 7' or later, endlessly spamming 'parse_url failed to parse L"<assemblyname>.resources"'

WineHQ Bugzilla wine-bugs at winehq.org
Sat Jan 4 19:50:42 CST 2020


https://bugs.winehq.org/show_bug.cgi?id=47277

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|-unknown                    |kernel32
                 CC|                            |focht at gmx.net
                URL|                            |https://github.com/sh-akira
                   |                            |/VirtualMotionCapture/relea
                   |                            |ses/download/v0.35r2/Virtua
                   |                            |lMotionCapture0.35r2.zip
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
            Summary|dotnet applications seems   |.NET 4.x WPF applications
                   |to repeatedly call          |fail to start with 'zh_CN'
                   |URL_ParseUrl and fail       |locale and WinVer set to
                   |                            |'Windows 7' or later,
                   |                            |endlessly spamming
                   |                            |'parse_url failed to parse
                   |                            |L"<assemblyname>.resources"
                   |                            |'

--- Comment #9 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

--- quote ---
This happens with dotnet40 as well. As long as the windows version is set to
"Windows 7" or up. The application would otherwise work fine.
--- quote ---

at least one .NET WPF application you've mentioned (VirtualMotionCapture)
requires at least .NET Framework 4.5 or later because it makes use of specific
'System.Runtime.CompilerServices' features that are not available with .NET
Framework 4.0 runtime. It will crash on startup if you only used 'winetricks -q
dotnet40' (after working around first issue).

In fact the app requests even higher SKU for whatever reasons:

https://github.com/sh-akira/VirtualMotionCapture/blob/master/ControlWindowWPF/ControlWindowWPF/App.config

--- snip ---
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.1" />
    </startup>
</configuration>
--- snip ---

Anyway, I could reproduce the issue with your locale and WinVer set to 'Windows
7' (default):

--- snip ---
$ pwd
/home/focht/Downloads/vmc/ControlPanel

$ file *.{dll,exe}
akr.WPF.Controls.ColorPicker.dll:     PE32 executable (DLL) (console) Intel
80386 Mono/.Net assembly, for MS Windows
UnityMemoryMappedFile.dll:            PE32 executable (DLL) (console) Intel
80386 Mono/.Net assembly, for MS Windows
DLLInstaller32.exe:                   PE32 executable (GUI) Intel 80386
Mono/.Net assembly, for MS Windows
DLLInstaller64.exe:                   PE32+ executable (GUI) x86-64 Mono/.Net
assembly, for MS Windows
VirtualMotionCaptureControlPanel.exe: PE32 executable (GUI) Intel 80386
Mono/.Net assembly, for MS Windows

$ LC_ALL=zh_CN.UTF-8 wine ./VirtualMotionCaptureControlPanel.exe
...
0009:fixme:path:parse_url failed to parse L"PresentationFramework"
0009:fixme:path:parse_url failed to parse L"WindowsBase"
0009:fixme:path:parse_url failed to parse L"System.Core"
0009:fixme:path:parse_url failed to parse L"System"
0009:fixme:path:parse_url failed to parse L"System.Configuration"
0009:fixme:path:parse_url failed to parse L"System.Xml"
0009:fixme:path:parse_url failed to parse L"System.Numerics"
0009:fixme:path:parse_url failed to parse L"System.Security"
0009:fixme:path:parse_url failed to parse L"System.Xaml"
0009:fixme:path:parse_url failed to parse L"Accessibility"
0009:fixme:path:parse_url failed to parse L"PresentationCore"
0009:fixme:path:parse_url failed to parse L"UIAutomationTypes"
0009:fixme:path:parse_url failed to parse L"System.Windows.Input.Manipulations"
0009:fixme:path:parse_url failed to parse L"UIAutomationProvider"
0009:fixme:path:parse_url failed to parse L"System.Deployment"
0009:fixme:path:parse_url failed to parse L"ReachFramework"
0009:fixme:path:parse_url failed to parse L"PresentationUI"
0009:fixme:path:parse_url failed to parse L"System.Printing"
0009:fixme:path:parse_url failed to parse L"WindowsBase"
0009:fixme:path:parse_url failed to parse L"System.Core"
0009:fixme:path:parse_url failed to parse L"System"
0009:fixme:path:parse_url failed to parse L"PresentationCore"
0009:fixme:path:parse_url failed to parse L"System.Xaml"
0009:fixme:ntdll:EtwEventRegister ({e13b77a8-14b6-11de-8069-001b212b5009},
0x59b28e0, 0x5a50028, 0x5a573e0) stub.
0009:fixme:nls:LCIDToLocaleName unsupported flags 8000000
0009:fixme:nls:get_dummy_preferred_ui_language (0x8 0x32ce54 (nil) 0x32ce50)
returning a dummy value (current locale)
0009:fixme:nls:get_dummy_preferred_ui_language (0x8 0x32ce54 0x3fd2490
0x32ce50) returning a dummy value (current locale)
0009:fixme:nls:LCMapStringEx unsupported lparam 3fd2490
0009:fixme:ntdll:EtwEventRegister ({6a7dfda1-a101-5a70-eade-2ecfec4034d8},
0x5ff02be, (nil), 0x161b960) stub.
0009:fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 0x161b918, 64) stub
0009:fixme:ntdll:EtwEventRegister ({e13b77a8-14b6-11de-8069-001b212b5009},
0x5ff035e, (nil), 0x32ed14) stub.
0009:fixme:ntdll:EtwEventRegister ({8e9f5090-2d75-4d03-8a81-e5afbf85daf1},
0x5ff0386, (nil), 0x1622b94) stub.
0009:fixme:path:parse_url failed to parse
L"VirtualMotionCaptureControlPanel.resources"
0009:fixme:path:parse_url failed to parse
L"VirtualMotionCaptureControlPanel.resources"
...
<repeats endlessly>
--- snip ---

This works:

--- snip ---
$ LC_ALL=C wine ./VirtualMotionCaptureControlPanel.exe
...
0009:fixme:path:parse_url failed to parse L"PresentationFramework"
0009:fixme:path:parse_url failed to parse L"WindowsBase"
0009:fixme:path:parse_url failed to parse L"System.Core"
0009:fixme:path:parse_url failed to parse L"System"
0009:fixme:path:parse_url failed to parse L"System.Configuration"
0009:fixme:path:parse_url failed to parse L"System.Xml"
0009:fixme:path:parse_url failed to parse L"System.Numerics"
0009:fixme:path:parse_url failed to parse L"System.Security"
0009:fixme:path:parse_url failed to parse L"System.Xaml"
0009:fixme:path:parse_url failed to parse L"Accessibility"
0009:fixme:path:parse_url failed to parse L"PresentationCore"
0009:fixme:path:parse_url failed to parse L"UIAutomationTypes"
0009:fixme:path:parse_url failed to parse L"System.Windows.Input.Manipulations"
0009:fixme:path:parse_url failed to parse L"UIAutomationProvider"
0009:fixme:path:parse_url failed to parse L"System.Deployment"
0009:fixme:path:parse_url failed to parse L"ReachFramework"
0009:fixme:path:parse_url failed to parse L"PresentationUI"
0009:fixme:path:parse_url failed to parse L"System.Printing"
0009:fixme:path:parse_url failed to parse L"WindowsBase"
0009:fixme:path:parse_url failed to parse L"System.Core"
0009:fixme:path:parse_url failed to parse L"System"
0009:fixme:path:parse_url failed to parse L"PresentationCore"
0009:fixme:path:parse_url failed to parse L"System.Xaml"
0009:fixme:ntdll:EtwEventRegister ({e13b77a8-14b6-11de-8069-001b212b5009},
0x56428e0, 0x56e0028, 0x56e73e0) stub.
0009:fixme:nls:LCIDToLocaleName unsupported flags 8000000
0009:fixme:nls:get_dummy_preferred_ui_language (0x8 0x32ce54 (nil) 0x32ce50)
returning a dummy value (current locale)
0009:fixme:nls:get_dummy_preferred_ui_language (0x8 0x32ce54 0x3de16a8
0x32ce50) returning a dummy value (current locale)
0009:fixme:nls:LCMapStringEx unsupported lparam 3de2320
0009:fixme:ntdll:EtwEventRegister ({6a7dfda1-a101-5a70-eade-2ecfec4034d8},
0x5dd02be, (nil), 0x161b960) stub.
0009:fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 0x161b918, 64) stub
0009:fixme:ntdll:EtwEventRegister ({e13b77a8-14b6-11de-8069-001b212b5009},
0x5dd035e, (nil), 0x32ed14) stub.
0009:fixme:ntdll:EtwEventRegister ({8e9f5090-2d75-4d03-8a81-e5afbf85daf1},
0x5dd0386, (nil), 0x1622b94) stub.
0009:fixme:path:parse_url failed to parse
L"VirtualMotionCaptureControlPanel.resources"
0009:fixme:path:parse_url failed to parse
L"VirtualMotionCaptureControlPanel.resources"
0009:fixme:ntdll:EtwEventRegister ({2e5dba47-a3d2-4d16-8ee0-6671ffdcd7b5},
0x5dd043e, (nil), 0x1685e0c) stub.
0009:fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 0x1685ddc, 40) stub
0009:fixme:path:parse_url failed to parse L"UnityMemoryMappedFile"
...
--- snip ---

Works as well:

--- snip ---
$ LC_ALL=ja_JP.UTF-8 wine ./VirtualMotionCaptureControlPanel.exe
...
--- snip ---

The reason seems to be that Wine returns 'zh-Hans' for ISO 639 name 'zh-cn'
LOCALE_SPARENT. The .NET CLR somehow doesn't expect that. The ISO 639-1
language name is 'zh' which leads to a fallback resource path in .NET.

https://source.winehq.org/git/wine.git/blob/0747fd29d8f429a3421207b52eabe11cfcdf877d:/dlls/kernelbase/locale.c#l3933

--- snip ---
3933
/******************************************************************************
3934  *      GetLocaleInfoEx   (kernelbase.@)
3935  */
3936 INT WINAPI DECLSPEC_HOTPATCH GetLocaleInfoEx( const WCHAR *locale, LCTYPE
info, WCHAR *buffer, INT len )
3937 {
3938     LCID lcid = LocaleNameToLCID( locale, 0 );
3939 
3940     TRACE( "%s lcid=0x%x 0x%x\n", debugstr_w(locale), lcid, info );
3941 
3942     if (!lcid) return 0;
3943 
3944     /* special handling for neutral locale names */
3945     if (locale && lstrlenW( locale ) == 2)
3946     {
3947         switch (LOWORD( info ))
3948         {
3949         case LOCALE_SNAME:
3950             if (len && len < 3)
3951             {
3952                 SetLastError( ERROR_INSUFFICIENT_BUFFER );
3953                 return 0;
3954             }
3955             if (len) lstrcpyW( buffer, locale );
3956             return 3;
3957         case LOCALE_SPARENT:
3958             if (len) buffer[0] = 0;
3959             return 1;
3960         }
3961     }
3962     return GetLocaleInfoW( lcid, info, buffer, len );
3963 }
--- snip ---

Trace log for working case, using 'ja_JP.UTF-8':

--- snip ---
$ LC_ALL=ja_JP.UTF-8 WINEDEBUG=+seh,+relay,+resource,+nls wine
./VirtualMotionCaptureControlPanel.exe >>log_jp.txt 2>&1
...
008b:Call KERNEL32.GetLocaleInfoEx(0032ec20
L"ja-JP",0000006d,0032ee20,00000212) ret=00acf806
008b:Call ntdll.RtlLocaleNameToLcid(0032ec20 L"ja-JP",0032eb08,00000002)
ret=1001e2dd
008b:trace:resource:LdrFindResourceDirectory_U module 0x7b420000 type #0006
name #0006 lang 0000 level 2
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b73d8 id 0006 ret
0x7b4b7400
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b7400 id 0006 ret
0x7b4b8c30
008b:trace:resource:LdrFindResource_U module 0x7b420000 type #0006 name #0006
lang 007f level 3
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b73d8 id 0006 ret
0x7b4b7400
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b7400 id 0006 ret
0x7b4b8c30
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b8c30 id 007f ret
0x7b4bdec8
008b:trace:resource:LdrFindResource_U module 0x7b420000 type #0006 name #0006
lang 007f level 3 
...
008b:trace:resource:LdrFindResource_U module 0x7b420000 type #0006 name #0006
lang 0411 level 3
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b73d8 id 0006 ret
0x7b4b7400
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b7400 id 0006 ret
0x7b4b8c30
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b8c30 id 0411 ret
0x7b4bdfd8
008b:trace:nls:RtlLocaleNameToLcid L"ja-JP" -> 0411
008b:Ret  ntdll.RtlLocaleNameToLcid() retval=00000000 ret=1001e2dd
008b:trace:nls:GetLocaleInfoEx L"ja-JP" lcid=0x411 0x6d
008b:trace:nls:GetLocaleInfoW (lcid=0x411,lctype=0x6d,0032EE20,530)
008b:Call ntdll.NtQueryDefaultLocale(00000001,0032eaa8) ret=10018618
008b:Ret  ntdll.NtQueryDefaultLocale() retval=00000000 ret=10018618
008b:Call ntdll.LdrFindResource_U(7b420000,0032ea64,00000003,0032ea70)
ret=10017a53
008b:trace:resource:LdrFindResource_U module 0x7b420000 type #0006 name #0007
lang 0411 level 3
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b73d8 id 0006 ret
0x7b4b7400
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b7400 id 0007 ret
0x7b4b90f0
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b90f0 id 0411 ret
0x7b4be938
008b:Ret  ntdll.LdrFindResource_U() retval=00000000 ret=10017a53
008b:Call ntdll.LdrAccessResource(7b420000,7b4be938,0032ea8c,00000000)
ret=10017b61
008b:Ret  ntdll.LdrAccessResource() retval=00000000 ret=10017b61
008b:Call ntdll.memcpy(0032ee20,7b4e469c,00000006) ret=1001888c
008b:Ret  ntdll.memcpy() retval=0032ee20 ret=1001888c
008b:trace:nls:GetLocaleInfoW (lcid=0x411,lctype=0x6d,0032EE20,530) returning 3
L"ja"
008b:Ret  KERNEL32.GetLocaleInfoEx() retval=00000003 ret=00acf806
008b:Call KERNEL32.GetLocaleInfoEx(0032ef2c L"ja",0000005c,0032f12c,00000055)
ret=00acf806
008b:Call ntdll.RtlLocaleNameToLcid(0032ef2c L"ja",0032edb8,00000002)
ret=1001e2dd
008b:trace:resource:LdrFindResourceDirectory_U module 0x7b420000 type #0006
name #0006 lang 0000 level 2
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b73d8 id 0006 ret
0x7b4b7400
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b7400 id 0006 ret
0x7b4b8c30
008b:trace:resource:LdrFindResource_U module 0x7b420000 type #0006 name #0006
lang 007f level 3
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b73d8 id 0006 ret
0x7b4b7400
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b7400 id 0006 ret
0x7b4b8c30
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b8c30 id 007f ret
0x7b4bdec8 
...
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b7400 id 0006 ret
0x7b4b8c30
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b8c30 id 0411 ret
0x7b4bdfd8
008b:trace:nls:RtlLocaleNameToLcid L"ja" -> 0011
008b:Ret  ntdll.RtlLocaleNameToLcid() retval=00000000 ret=1001e2dd
008b:trace:nls:GetLocaleInfoEx L"ja" lcid=0x411 0x5c
008b:Ret  KERNEL32.GetLocaleInfoEx() retval=00000003 ret=00acf806
008b:Call KERNEL32.GetLocaleInfoEx(0032f12c L"ja",20000071,0032ef00,00000002)
ret=00acf806
008b:Call ntdll.RtlLocaleNameToLcid(0032f12c L"ja",0032edb8,00000002)
ret=1001e2dd
008b:trace:resource:LdrFindResourceDirectory_U module 0x7b420000 type #0006
name #0006 lang 0000 level 2
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b73d8 id 0006 ret
0x7b4b7400
008b:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b7400 id 0006 ret
0x7b4b8c30
008b:trace:resource:LdrFindResource_U module 0x7b420000 type #0006 name #0006
lang 007f level 3
...
--- snip ---

Trace log for non-working case, with 'zh_CN.UTF-8':

--- snip ---
$ LC_ALL=zh_CN.UTF-8 WINEDEBUG=+seh,+relay,+resource,+nls wine
./VirtualMotionCaptureControlPanel.exe >>log_zh.txt 2>&1
...
0092:Call KERNEL32.GetLocaleInfoEx(0032ec20
L"zh-CN",0000006d,0032ee20,00000212) ret=00acf806
0092:Call ntdll.RtlLocaleNameToLcid(0032ec20 L"zh-CN",0032eb08,00000002)
ret=1001e2dd
0092:trace:resource:LdrFindResourceDirectory_U module 0x7b420000 type #0006
name #0006 lang 0000 level 2
0092:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b73d8 id 0006 ret
0x7b4b7400
0092:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b7400 id 0006 ret
0x7b4b8c30
0092:trace:resource:LdrFindResource_U module 0x7b420000 type #0006 name #0006
lang 007f level 3
0092:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b73d8 id 0006 ret
0x7b4b7400
0092:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b7400 id 0006 ret
0x7b4b8c30
0092:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b8c30 id 007f ret
0x7b4bdec8
0092:trace:resource:LdrFindResource_U module 0x7b420000 type #0006 name #0006
lang 007f level 3
0092:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b73d8 id 0006 ret
0x7b4b7400
0092:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b7400 id 0006 ret
0x7b4b8c30
0092:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b8c30 id 007f ret
0x7b4bdec8 
...
0092:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b73d8 id 0006 ret
0x7b4b7400
0092:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b7400 id 0006 ret
0x7b4b8c30
0092:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b8c30 id 0801 ret
0x7b4be3b8
0092:trace:resource:LdrFindResource_U module 0x7b420000 type #0006 name #0006
lang 0804 level 3
0092:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b73d8 id 0006 ret
0x7b4b7400
0092:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b7400 id 0006 ret
0x7b4b8c30
0092:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b8c30 id 0804 ret
0x7b4be3c8
0092:trace:nls:RtlLocaleNameToLcid L"zh-CN" -> 0804
0092:Ret  ntdll.RtlLocaleNameToLcid() retval=00000000 ret=1001e2dd
0092:trace:nls:GetLocaleInfoEx L"zh-CN" lcid=0x804 0x6d
0092:trace:nls:GetLocaleInfoW (lcid=0x804,lctype=0x6d,0032EE20,530)
0092:Call ntdll.NtQueryDefaultLocale(00000001,0032eaa8) ret=10018618
0092:Ret  ntdll.NtQueryDefaultLocale() retval=00000000 ret=10018618
0092:Call ntdll.LdrFindResource_U(7b420000,0032ea64,00000003,0032ea70)
ret=10017a53
0092:trace:resource:LdrFindResource_U module 0x7b420000 type #0006 name #0007
lang 0804 level 3
0092:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b73d8 id 0006 ret
0x7b4b7400
0092:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b7400 id 0007 ret
0x7b4b90f0
0092:trace:resource:find_entry_by_id root 0x7b4b73d8 dir 0x7b4b90f0 id 0804 ret
0x7b4bed28
0092:Ret  ntdll.LdrFindResource_U() retval=00000000 ret=10017a53
0092:Call ntdll.LdrAccessResource(7b420000,7b4bed28,0032ea8c,00000000)
ret=10017b61
0092:Ret  ntdll.LdrAccessResource() retval=00000000 ret=10017b61
0092:Call ntdll.memcpy(0032ee20,7b4e5bb8,00000010) ret=1001888c
0092:Ret  ntdll.memcpy() retval=0032ee20 ret=1001888c
0092:trace:nls:GetLocaleInfoW (lcid=0x804,lctype=0x6d,0032EE20,530) returning 8
L"zh-Hans"
0092:Ret  KERNEL32.GetLocaleInfoEx() retval=00000008 ret=00acf806
...
0092:Call KERNEL32.lstrlenW(0380b098
L"VirtualMotionCaptureControlPanel.resources, Version=0.0.0.21, Culture=zh-CHS,
PublicKeyToken=null") ret=00b1dabc 
...
--- snip ---

--- snip ---
$ grep -Hrni LOCALE_SPARENT dlls/kernel32/nls/

dlls/kernel32/nls/zhi.nls:144:  LOCALE_SPARENT "zh-Hans"
dlls/kernel32/nls/del.nls:144:  LOCALE_SPARENT "de"
dlls/kernel32/nls/nep.nls:138:  LOCALE_SPARENT "ne"
dlls/kernel32/nls/eso.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/frb.nls:144:  LOCALE_SPARENT "fr"
dlls/kernel32/nls/plk.nls:144:  LOCALE_SPARENT "pl"
dlls/kernel32/nls/san.nls:144:  LOCALE_SPARENT "sa"
dlls/kernel32/nls/deu.nls:144:  LOCALE_SPARENT "de"
dlls/kernel32/nls/syr.nls:144:  LOCALE_SPARENT "syr"
dlls/kernel32/nls/enp.nls:144:  LOCALE_SPARENT "en"
dlls/kernel32/nls/ast.nls:144:  LOCALE_SPARENT "ast"
dlls/kernel32/nls/art.nls:144:  LOCALE_SPARENT "ar"
dlls/kernel32/nls/kat.nls:144:  LOCALE_SPARENT "ka"
dlls/kernel32/nls/esz.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/ara.nls:144:  LOCALE_SPARENT "ar"
dlls/kernel32/nls/esv.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/hrv.nls:144:  LOCALE_SPARENT "hr"
dlls/kernel32/nls/esu.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/lth.nls:144:  LOCALE_SPARENT "lt"
dlls/kernel32/nls/ben.nls:138:  LOCALE_SPARENT "bn"
dlls/kernel32/nls/mon.nls:144:  LOCALE_SPARENT "mn-Cyrl"
dlls/kernel32/nls/rmc.nls:155:  LOCALE_SPARENT "rm"
dlls/kernel32/nls/ary.nls:144:  LOCALE_SPARENT "ar"
dlls/kernel32/nls/sky.nls:144:  LOCALE_SPARENT "sk"
dlls/kernel32/nls/eti.nls:144:  LOCALE_SPARENT "et"
dlls/kernel32/nls/ttt.nls:144:  LOCALE_SPARENT "tt"
dlls/kernel32/nls/enj.nls:144:  LOCALE_SPARENT "en"
dlls/kernel32/nls/esp.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/rom.nls:144:  LOCALE_SPARENT "ro"
dlls/kernel32/nls/non.nls:144:  LOCALE_SPARENT "nn"
dlls/kernel32/nls/svf.nls:144:  LOCALE_SPARENT "sv"
dlls/kernel32/nls/far.nls:144:  LOCALE_SPARENT "fa"
dlls/kernel32/nls/frm.nls:144:  LOCALE_SPARENT "fr"
dlls/kernel32/nls/fra.nls:144:  LOCALE_SPARENT "fr"
dlls/kernel32/nls/srl.nls:144:  LOCALE_SPARENT "sr-Latn"
dlls/kernel32/nls/afk.nls:141:  LOCALE_SPARENT "af"
dlls/kernel32/nls/ptg.nls:144:  LOCALE_SPARENT "pt"
dlls/kernel32/nls/kyr.nls:144:  LOCALE_SPARENT "ky"
dlls/kernel32/nls/fin.nls:144:  LOCALE_SPARENT "fi"
dlls/kernel32/nls/ese.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/cor.nls:145:  LOCALE_SPARENT "en"
dlls/kernel32/nls/ess.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/esh.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/dec.nls:144:  LOCALE_SPARENT "de"
dlls/kernel32/nls/euq.nls:144:  LOCALE_SPARENT "eu"
dlls/kernel32/nls/hin.nls:144:  LOCALE_SPARENT "hi"
dlls/kernel32/nls/ari.nls:144:  LOCALE_SPARENT "ar"
dlls/kernel32/nls/esr.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/nld.nls:144:  LOCALE_SPARENT "nl"
dlls/kernel32/nls/mar.nls:144:  LOCALE_SPARENT "mr"
dlls/kernel32/nls/esc.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/div.nls:144:  LOCALE_SPARENT "dv"
dlls/kernel32/nls/azl.nls:144:  LOCALE_SPARENT "az-Latn"
dlls/kernel32/nls/knk.nls:144:  LOCALE_SPARENT "kok"
dlls/kernel32/nls/arh.nls:144:  LOCALE_SPARENT "ar"
dlls/kernel32/nls/enz.nls:144:  LOCALE_SPARENT "en"
dlls/kernel32/nls/nls.nls:150:  LOCALE_SPARENT "nl"
dlls/kernel32/nls/esa.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/ars.nls:144:  LOCALE_SPARENT "ar"
dlls/kernel32/nls/enu.nls:144:  LOCALE_SPARENT "en"
dlls/kernel32/nls/esm.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/tha.nls:144:  LOCALE_SPARENT "th"
dlls/kernel32/nls/heb.nls:145:  LOCALE_SPARENT "he"
dlls/kernel32/nls/esn.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/nlb.nls:144:  LOCALE_SPARENT "nl"
dlls/kernel32/nls/vit.nls:144:  LOCALE_SPARENT "vi"
dlls/kernel32/nls/csy.nls:144:  LOCALE_SPARENT "cs"
dlls/kernel32/nls/frs.nls:144:  LOCALE_SPARENT "fr"
dlls/kernel32/nls/esy.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/kor.nls:144:  LOCALE_SPARENT "ko"
dlls/kernel32/nls/arj.nls:144:  LOCALE_SPARENT "ar"
dlls/kernel32/nls/esl.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/guj.nls:144:  LOCALE_SPARENT "gu"
dlls/kernel32/nls/tel.nls:144:  LOCALE_SPARENT "te"
dlls/kernel32/nls/eni.nls:144:  LOCALE_SPARENT "en"
dlls/kernel32/nls/arq.nls:144:  LOCALE_SPARENT "ar"
dlls/kernel32/nls/ukr.nls:144:  LOCALE_SPARENT "uk"
dlls/kernel32/nls/kan.nls:144:  LOCALE_SPARENT "kn"
dlls/kernel32/nls/arm.nls:144:  LOCALE_SPARENT "ar"
dlls/kernel32/nls/lvi.nls:144:  LOCALE_SPARENT "lv"
dlls/kernel32/nls/cat.nls:144:  LOCALE_SPARENT "ca"
dlls/kernel32/nls/eox.nls:160:  LOCALE_SPARENT "eo"
dlls/kernel32/nls/uzl.nls:144:  LOCALE_SPARENT "uz-Latn"
dlls/kernel32/nls/esb.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/arg.nls:144:  LOCALE_SPARENT "ar"
dlls/kernel32/nls/aze.nls:144:  LOCALE_SPARENT "az-Cyrl"
dlls/kernel32/nls/enc.nls:144:  LOCALE_SPARENT "en"
dlls/kernel32/nls/slv.nls:144:  LOCALE_SPARENT "sl"
dlls/kernel32/nls/gdv.nls:145:  LOCALE_SPARENT "gv"
dlls/kernel32/nls/srb.nls:144:  LOCALE_SPARENT "sr-Cyrl"
dlls/kernel32/nls/sin.nls:144:  LOCALE_SPARENT "si"
dlls/kernel32/nls/bgr.nls:144:  LOCALE_SPARENT "bg"
dlls/kernel32/nls/isl.nls:144:  LOCALE_SPARENT "is"
dlls/kernel32/nls/fos.nls:144:  LOCALE_SPARENT "fo"
dlls/kernel32/nls/enl.nls:144:  LOCALE_SPARENT "en"
dlls/kernel32/nls/zhh.nls:144:  LOCALE_SPARENT "zh-Hant"
dlls/kernel32/nls/msb.nls:144:  LOCALE_SPARENT "ms"
dlls/kernel32/nls/frl.nls:144:  LOCALE_SPARENT "fr"
dlls/kernel32/nls/ell.nls:144:  LOCALE_SPARENT "el"
dlls/kernel32/nls/nor.nls:145:  LOCALE_SPARENT "nb"
dlls/kernel32/nls/esi.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/hye.nls:144:  LOCALE_SPARENT "hy"
dlls/kernel32/nls/aru.nls:144:  LOCALE_SPARENT "ar"
dlls/kernel32/nls/esd.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/sqi.nls:144:  LOCALE_SPARENT "sq"
dlls/kernel32/nls/swk.nls:144:  LOCALE_SPARENT "sw"
dlls/kernel32/nls/ptb.nls:144:  LOCALE_SPARENT "pt"
dlls/kernel32/nls/ita.nls:144:  LOCALE_SPARENT "it"
dlls/kernel32/nls/chs.nls:144:  LOCALE_SPARENT "zh-Hans"
dlls/kernel32/nls/dan.nls:144:  LOCALE_SPARENT "da"
dlls/kernel32/nls/pan.nls:144:  LOCALE_SPARENT "pa"
dlls/kernel32/nls/gae.nls:145:  LOCALE_SPARENT "ga"
dlls/kernel32/nls/jpn.nls:144:  LOCALE_SPARENT "ja"
dlls/kernel32/nls/uzb.nls:144:  LOCALE_SPARENT "uz-Cyrl"
dlls/kernel32/nls/urd.nls:144:  LOCALE_SPARENT "ur"
dlls/kernel32/nls/wal.nls:144:  LOCALE_SPARENT "wa"
dlls/kernel32/nls/esf.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/rus.nls:144:  LOCALE_SPARENT "ru"
dlls/kernel32/nls/ena.nls:144:  LOCALE_SPARENT "en"
dlls/kernel32/nls/ind.nls:144:  LOCALE_SPARENT "id"
dlls/kernel32/nls/enb.nls:144:  LOCALE_SPARENT "en"
dlls/kernel32/nls/zhm.nls:144:  LOCALE_SPARENT "zh-Hant"
dlls/kernel32/nls/arl.nls:144:  LOCALE_SPARENT "ar"
dlls/kernel32/nls/dea.nls:144:  LOCALE_SPARENT "de"
dlls/kernel32/nls/cht.nls:144:  LOCALE_SPARENT "zh-Hant"
dlls/kernel32/nls/ivl.nls:144:  LOCALE_SPARENT "iv"
dlls/kernel32/nls/des.nls:144:  LOCALE_SPARENT "de"
dlls/kernel32/nls/ens.nls:144:  LOCALE_SPARENT "en"
dlls/kernel32/nls/kkz.nls:144:  LOCALE_SPARENT "kk"
dlls/kernel32/nls/ark.nls:144:  LOCALE_SPARENT "ar"
dlls/kernel32/nls/frc.nls:144:  LOCALE_SPARENT "fr"
dlls/kernel32/nls/are.nls:144:  LOCALE_SPARENT "ar"
dlls/kernel32/nls/aro.nls:144:  LOCALE_SPARENT "ar"
dlls/kernel32/nls/eng.nls:144:  LOCALE_SPARENT "en"
dlls/kernel32/nls/glc.nls:144:  LOCALE_SPARENT "gl"
dlls/kernel32/nls/msl.nls:144:  LOCALE_SPARENT "ms"
dlls/kernel32/nls/bel.nls:144:  LOCALE_SPARENT "be"
dlls/kernel32/nls/tam.nls:144:  LOCALE_SPARENT "ta"
dlls/kernel32/nls/its.nls:144:  LOCALE_SPARENT "it"
dlls/kernel32/nls/gdh.nls:145:  LOCALE_SPARENT "gd"
dlls/kernel32/nls/ent.nls:144:  LOCALE_SPARENT "en"
dlls/kernel32/nls/hun.nls:144:  LOCALE_SPARENT "hu"
dlls/kernel32/nls/trk.nls:144:  LOCALE_SPARENT "tr"
dlls/kernel32/nls/enw.nls:144:  LOCALE_SPARENT "en"
dlls/kernel32/nls/cym.nls:145:  LOCALE_SPARENT "en"
dlls/kernel32/nls/brf.nls:145:  LOCALE_SPARENT "fr"
dlls/kernel32/nls/esg.nls:144:  LOCALE_SPARENT "es"
dlls/kernel32/nls/sve.nls:144:  LOCALE_SPARENT "sv"
dlls/kernel32/nls/mki.nls:144:  LOCALE_SPARENT "mk"
dlls/kernel32/nls/arb.nls:144:  LOCALE_SPARENT "ar"
--- snip ---

Tidbits:

https://github.com/dotnet/coreclr/blob/master/src/System.Private.CoreLib/shared/System/Globalization/CultureData.Windows.cs

https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/wpf-globalization-and-localization-overview

$ sha1sum VirtualMotionCapture0.35r2.zip
d9ee65cd0f23b46b9cfc09c747c5dbc92a7470f1  VirtualMotionCapture0.35r2.zip

$ du -sh VirtualMotionCapture0.35r2.zip
32M    VirtualMotionCapture0.35r2.zip

$ wine --version
wine-5.0-rc4

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list