Regional Settings are not saved during reboot

Hello,
I build my own WinCE7 Image with BSP2.4b2 and Workspace 2.4b2 for Colibri T20 256MB IT.
In the Workspace I added the locale for Germany SYSGEN_NLS_DE_DE and French SYSGEN_NLS_FR_FR.
When I run the image, select the local German (Germany) in the Regional Settings, save the registry and reboot the device, the local is Englisch (United States) again.
Why can the local no longer be saved?
In our old Image with BSP1.4 it was working?

Has it something to do with this Toradex feature:

Hi @Julia ,

I tried to test it by installing the locales over our standard image with the locale installer we have. I see the same behavior… the locales are listed in the Regional settings in the control panel, and selecting them works within the current session, but is not persisted across re-boots (even with seving the registry).
The Settings seem to be saved int he registry:
[HKEY_CURRENT_USER\Control Panel\International]
“LocaleName”

Something seems not to wor with the restoring them after boot. I first thought it’s related to the fact that i used the installer, so the .nlx files are copied from \flashdisk\autocopy to \windows folder at boot and maybe this is too late… but you have the same issue with the .nlx files already in the image… so there seems to be an issue in restoring that setting from registry. Unfortunately the related code is not available in source so it’s difficult to know what’s the issue exactly… i suspect some MS updates or something we changed that makes it incompatible?

I wrote a little application that does nothing else than reading the registry value for the locale and calling the API to change the Locale:

        HKEY hKey;
        if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_CURRENT_USER, L"Control Panel\\International", 0, 0, &hKey))
        {
            TCHAR LocaleName[64]={0};
            DWORD len=sizeof(LocaleName);
            if(ERROR_SUCCESS == RegQueryValueEx(hKey, L"LocaleName", NULL, NULL, (LPBYTE)&LocaleName, &len))
            {
                LCID lcid=LocaleNameToLCID(LocaleName, 0);
                if(lcid)
                    SetUserDefaultLCID(lcid);
            }
            RegCloseKey(hKey);
        }

If i put it in Autorun, this fixes the issue. maybe you can use it too and run it before you application.

Here are the prebuilt versions of the tool:
https://share.toradex.com/50f4q42txd82sg4

Hi @germano.tx ,
with your tool it is working now.
Thank you for your support.