In the last year we experienced a lot of problems with Windows 10 language settings and the Microsoft Store Apps. Like Roger Zander described in his blog, we would like to have an English operating system but an activated German MUI. We are living in Switzerland, so we need to have the Swiss German keyboard Layout set. Additionally, we need to have de correct language order to get the Store Apps in the correct language.
This means, we need the following Order:
If we try to do this with the following command:
control intl.cpl,, /f:"UI.xml"
And the following Xml File:&lt;gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend"&gt; &lt;!--User List--&gt; &lt;gs:UserList&gt; &lt;gs:User UserID="Current" CopySettingsToSystemAcct="true" CopySettingsToDefaultUserAcct="true" /&gt; &lt;/gs:UserList&gt; &lt;!--Display Language--&gt; &lt;gs:MUILanguagePreferences&gt; &lt;gs:MUILanguage Value="de-DE" /&gt; &lt;gs:MUIFallback Value="en-US" /&gt; &lt;/gs:MUILanguagePreferences&gt; &lt;!--System Locale--&gt; &lt;gs:SystemLocale Name="de-CH"/&gt; &lt;!--User Locale--&gt; &lt;gs:UserLocale&gt; &lt;gs:Locale Name="de-CH" SetAsCurrent="true" ResetAllSettings="false"/&gt; &lt;/gs:UserLocale&gt; &lt;!--input preferences--&gt; &lt;gs:InputPreferences&gt; &lt;!--de-CH--&gt; &lt;gs:InputLanguageID Action="add" ID="0807:00000807" Default="true"/&gt; &lt;!--en-US--&gt; &lt;gs:InputLanguageID Action="remove" ID="0409:00000409"/&gt; &lt;!--de-DE--&gt; &lt;gs:InputLanguageID Action="remove" ID="0407:00000407"/&gt; &lt;!--fr-CH--&gt; &lt;gs:InputLanguageID Action="remove" ID="100c:0000100c"/&gt; &lt;/gs:InputPreferences&gt; &lt;!--location--&gt; &lt;gs:LocationPreferences&gt; &lt;gs:GeoID Value="223"/&gt; &lt;/gs:LocationPreferences&gt; &lt;/gs:GlobalizationServices&gt;
In the Windows Setup I used the following Unattend settings:&lt;component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt; &lt;InputLocale&gt;de-CH&lt;/InputLocale&gt; &lt;SystemLocale&gt;en-US&lt;/SystemLocale&gt; &lt;UILanguage&gt;en-US&lt;/UILanguage&gt; &lt;UserLocale&gt;de-CH&lt;/UserLocale&gt; &lt;UILanguageFallback&gt;de-DE&lt;/UILanguageFallback&gt; &lt;/component&gt;
The result is not as expected. With the above values, we specified de-DE as MUI Language, en-US as MUI Fallback Language and de-CH as Keyboard Layout, we will get the following Experience:
Windows is setting de-CH at the top of the list and specifies it also as the display language. In fact, there is no display language for de-CH. If you try to set de-CH as MUI language, you will receive an error in the event log.
As you can see, there is also no possibility to move the entries in the new Control Panel.
The main issue with these settings is, that the Store Apps are still in English, because they are not available for de-CH, which is the primary Language. The Apps are downloaded in the next available Language in the List. It is not possible to get an Order of de-CH, de-DE, en-US with command line tools.
To get the Apps in the correct language we need to change the Language Order.
Then we can check the Store and search for updates and we will get a lot of App Updates…
After that the apps have the correct language set.
Now there is only the question, how can we modify the Language Order during OSD with a Script? There are no tools available and I decided to create a PowerShell Script for it.
There are three locations which need to be updated in the registry:
- Current User
Path: HKCU:\Control Panel\International\User Profile
- Default User Profile
Path: HKCU:\Control Panel\International\User Profile
- Welcome Screen
Path: HKEY_USERS\.DEFAULT\Control Panel\International\User Profile
It is important, that we only change the order and don’t add additional Languages to this value. So I created a Script, which can be executed in the Task Sequence after you have applied the correct settings with the “control intl.cpl” method I mentioned earlier.
Set-LanguageOrder.ps1 -LanguageOrder "de-CH,de-DE,en-US"
This Script validates the provided Order and will change the registry keys to have the specified order and attaches all not provided Languages at the end.
Registry Value: “de-CH,en-US,de-DE,fr-CH”
Provided LanguageOrder to the Script: “de-CH,de-DE”
Registry Value: “de-CH,en-US,de-DE”
Provided LanguageOrder to the Script: “de-CH,de-DE,it-IT”
It-IT is not added because it was not in the list before.
The result is as expected when using the following things:
- Unattend File specified in this Blog
- Set the International Settings with the above XML File
- Set the Language Order with my Script
The Microsoft Store Apps are switching to German, as soon the Store updates them.
The Script can be downloaded here.
I’m happy to get feedback about your experience with Language Settings and Windows 10.
Latest posts by Thomas Kurth (see all)
- Build better pilot rings for Updates with MEM Intune - June 13, 2021
- Automatic Intune Documentation evolves to Automatic Microsoft 365 Documentation - May 25, 2021
- Build better pilot rings for Updates with MEMCM - March 14, 2021