- Join Windows 11 to an Active Directory domain - Thu, Jun 1 2023
- Change Windows network profiles between public and private - Wed, May 24 2023
- How to map a network drive with PowerShell - Wed, May 17 2023
Microsoft traditionally differentiates between LPs and language interface packs (LIPs) when it comes to multilingual operating systems. The former are complete LPs for important markets, such as the US, Germany, France, China, and Spain.
These also have features on demand, such as handwriting recognition, spell checking, and text-to-speech.
On the other hand, LIPs only contain a partially translated interface for less widely used languages or smaller markets, and they require a regular LP as a basis (see this overview).
All LPs for Windows 10 1903 as LXPs
In the past, Microsoft made the language files available in .cab format. If required, they can be integrated offline into a Windows image using DISM. With Windows 10 1803, however, the migration to LXPs began. These files are available in AppX format, and you can therefore obtain them also from the store.
Since version 1809, LIPs are no longer available as .cab files but only as LXPs. Users can download the .iso images containing all languages supported by Windows 10 from the Volume Licensing Service Center (VLSC) or from My Visual Studio (formerly MSDN). For version 1903 it also ships several regular LPs as LXPs, and all of them are available in the store too. But for the time being, they are additionally available as .cab files on the .iso.
Integrating LPs into a Windows image
This juxtaposition of formats, installation sources, and separate versions for each release of Windows 10 makes the situation confusing. Admins who want to add additional LPs to a Windows image before deployment can choose between .cab files and LXPs for the May update.
An installation of LPs by the admin is mainly for companies that do not want their users to get apps from the Microsoft Store themselves. For integrating the .cab version into an image, you can still use DISM with this pattern:
Dism /Add-Package /Image:"C:\mount" /PackagePath="Microsoft-Windows-Client-Language-Pack_x64_en-us.cab"
Similarly, you would install the LXP for Italian with PowerShell as follows:
Add-AppxProvisionedPackage -Path c:\mount -PackagePath .\LanguageExperiencePack.it-IT.Neutral.appx -LicensePath .\License.xml
This provisions the AppX in the system, and it should appear in the language selection during the out-of-box experience (OOBE) phase.
Adding an LXP online
It gets more complicated if you install the LXP into a running Windows system by using the Online switch instead of the Path parameter:
Add-AppxProvisionedPackage -Online -PackagePath .\LanguageExperiencePack.it-IT.Neutral.appx `-LicensePath .\License.xml
The LP then becomes available in the system and installed for the user currently logged in.
You can easily verify this with PowerShell in an administrative session:
Get-AppxPackage -AllUsers | ? Name -Like *LanguageExperiencePack* | Format-List Name, PackageUserInformation
However, Microsoft's move to AppX means you must add each LXP separately for each additional user.
You could do this with PowerShell like this:
$p = (Get-AppxPackage | ? Name -Like *LanguageExperiencePackit-IT).InstallLocation Add-AppxPackage -Register -Path "$p\AppxManifest.xml" -DisableDevelopmentMode
With these two commands, you would install the Italian LXP for the current user. If you now expect the Settings app to reflect the newly added language in its list, you'll be disappointed. PowerShell can fix this with:
Set-WinUILanguageOverride -Language it-it
Now since you have explicitly activated Italian as the new display language, it also appears in the Settings app.
If in this example you want to use Italian not only for the display but also as your preferred language, proceed as follows:
$ll = New-WinUserLanguageList -Language it-it Set-WinUserLanguageList $ll -Force
Adding an LP using the GUI
To be able to add LPs including optional features via the Settings app, you have to log on to the system as an administrator. As you know, running the app with elevated rights via runas is not possible. Standard users can only add a new display language themselves.
The redesigned language configuration page offers two options for interactive installation. First, you can download an LP from the store by clicking on the corresponding link. Secondly, you can reach this goal by clicking on the plus symbol under Add a language.
The result for both methods is obviously the same. Only the language you place at the top of the list is the preferred language and will determine the appearance of applications. All others are just additional languages. Thus, early builds for Windows 10 20H1 will only show one language in this list.
In addition, since Windows 10 1809, it is possible to set the display language separately from the default language for applications and websites. Current previews of Windows 10 20H1 divide the language configuration even further and allow you to select the language for voice input independently.
Windows Server 2019
Windows Server 2019 got stuck halfway during the transition from .cab to LXP. While you could still add an LP in the Settings app with version 2016, this procedure does not work anymore. Downloading an LP from the store is not possible because the store app is missing here.
If you want to install an LP this way, you will get the optional features, but the corresponding display language is missing. Even if you see a Download button for the LP on the options page, it won't work. Instead, you should add an LP as a .cab file before the interactive installation in the Settings app.
Subscribe to 4sysops newsletter!
Since the LPs for Windows 10 are not compatible with the server OS, the required .iso is a separate download. It is generally available and not bound to a volume license as it is on the client. The installation then occurs via lpksetup.exe as usual for .cab LPs.
Hi Wolfgang,
First thanks for your sharing about the LPs and the quality of the explanations.
As I work for an International Compagny I have to build a new Gold Image, common to the Company, with Windows 10 1809 in English (default language) and put the French Language Pack.
For the French branch Office I need to set the french language as the default for All Users using this VDI.
But despite everything, I was note able to implement your solution on my running Win10 1809 VDI Gold Master.
I put Win10 in Audit Mode, mounted the LP iso in CD-Drive, start Powershell and put the command prompt in the LocalExperiencePack Folder.
Then I use the -Online switch and the powershell command "Add-AppxProvisionedPackage -Online -PackagePath .\LanguageExperiencePack.fr-FR.Neutral.appx `-LicensePath .\License.xml".
But the installation failed.
If i browse the DVD I can't find a fr-FR folder (nor it-IT like in your example).
So can you help me more ?
Do we need to set the default language in Audit Mode ?
Thanks in advance for your help.
Regards
Steeve
PS : I use SW_DVD9_NTRL_Win_10_1809_32_64_ARM64_MultiLang_LangPackAll_LIP_X21-91305, is it the right iso ?
Just out of curiosity , how did you find these things out?
I can only do it because of this blog.
Man, this is exactly what I needed to understand LP, LXP and LIP! WTH?!
Thanks 🙂
Adam
Is there a way to download language components through direct links to make an offline installation elsewhere?
Or alternatively, is there a way to collect the downloaded language files on one system and transfer them for an offline installation on another machine?
did you ever find an answer for this it would be great if we could build a repository of offline LXP's then transfer when needed or if we could load the LXP into the packages section of an MDT server.
I searched the global website and found the tutorial here.
Windows 11 22H2 Offline Packaging Multilingual Tutorial
https://youtu.be/_khTgPmIcAo