PowerShell GUI for Downloading Language Packs - W10_11LangPack.ps1

The rules for adding a Language Pack are simple:
1. You must first apply the LP update files to a base image.
2. Reload the updated image.
3. Re-install the latest Monthly Update for this Windows, because the LP install "resets" some of the shared files. If you're installing W11 24H2/25H2, then reinstall the Checkpoint KB5043080 with the current Monthly Update.

Languages Pack add more languages to Windows, but it doesn't change your user profile's default language. You can change it by running a PowerShell command, as in post #1:

Why don't I see new languages in my user account?
Windows doesn't automatically add every installed language to your user profile. A system might have multiple languages, but you don't need every one of them. Instead you can specify your own list of displayed languages.

Run this PowerShell command from Post-Setup (After logon):
powershell-nop Set-WinUserLanguageList -LanguageList "en-US, en-GB" -Force
 
But I got a problem. When I take my iso file and load it into my VM I only see English.. I don't know what I'm doing wrong.. I've been searching for an answer with all my might... Can someone help me or make a guide for me?
You need to add the LP's and winpe files to Boot.wim Index 2 also, not just Install.wim.that is if you want a localized setup.

During Setup you select a language to use and Windows "remove the other languages visible option in "Display language" because regkey "BlockCleanupOfUnusedPreinstalledLangPacks" is set to 0. They're not actually removed from the install


And like garlin wrote, you need to add latest update for LCU/SSU and checkpoint update to the image otherwise you could face errors
 
I downloaded the .cab files through the PowerShell GUI and added them to my image.

I am able to switch the keyboard layouts (except zh-CN, for which I have no solution either), but I can't switch the primary display language, PowerShell spits this out:

1770290156262.png

There is also no way to choose anything other than english here:

1770290186414.png

What could be the problem?

The version I'm trying to install is Win11 Pro 25H2.
 
Is the ESD part required if you have the Languages from the Windows 11 Languages and Optional Features ISO in the VLSC? It took half an hour to do the first one (German) and the resultant Microsoft-Windows-Client-LanguagePack-Package-amd64-de-DE is only 10kb different in size to the one from the ISO.
 
What could be the problem?
You didn't add the Client-LanguagePack-Package files for the other languages (only en-US).

Get-InstalledLanguage lists you have the language input features, but those don't provide the display languages. You need the LP's installed.

If you already have the W11 LSOF ISO, then you don't need the script. Not everyone needs more than 1-2 LP's, so the script exists to download the language files they want (from UUP dump) without needing the full ISO.
 
If you already have the W11 LSOF ISO, then you don't need the script. Not everyone needs more than 1-2 LP's, so the script exists to download the language files they want (from UUP dump) without needing the full ISO.
The reason i asked this, is I was previously using a script called WimWitch to service a Windows 11 WIM and I found that if i slipstream language packs and language features such as LXPs then the Language packs show up but the LXPs do not. I tried using NTLite to do the same job, and unfortunately have the exact same problem. All the LXPs show with a Download button even though they were installed in the WIM.
 
LXP's are considered UWP "apps" because they're packaged that way. The advantage of UWP is you can install them on a live system without having to re-install the last CU. The problem of a LP is after you add them to an image (offline or online), you're required to install the last CU again because of the order of installed files.

UWP avoids the issue since it's self-contained, and outside of WinSxS. But UWP doesn't offer the complete translation coverage of a LP. Some users claim there's no difference btw the two versions. If that's true why hasn't the LP disappeared in the years after the LXP first appeared?

I haven't tried adding a LXP in NTLite, so I don't know if considers them a plain "Store app" instead of a language resource.
 
It
I downloaded the .cab files through the PowerShell GUI and added them to my image.

I am able to switch the keyboard layouts (except zh-CN, for which I have no solution either), but I can't switch the primary display language, PowerShell spits this out:



There is also no way to choose anything other than english here:



What could be the problem?

The version I'm trying to install is Win11 Pro 25H2.
Its just what I wrote, Windows removes unused LPs from settings (Only if you didnt set regkey and integrating languagepacks like mentioned above)

You need to click the language and install
 
When i download win11 26h1, the app crashes immediately after I click "OK". Is there a solution?
 

Attachments

  • bandicam 2026-02-14 10-00-13-223.gif
    bandicam 2026-02-14 10-00-13-223.gif
    1.8 MB
The normal rule is to always extract the LP's from the release's earliest build on UUP dump. In this case (28000.1).

A random problem that happens is something changes on the UUP dump or MS side, and you can't use that build for extraction. So you switch to the next higher build on the list (now 28000.1199).

I've updated the ZIP in post #1, please try again with the new script.
 
The normal rule is to always extract the LP's from the release's earliest build on UUP dump. In this case (28000.1).

A random problem that happens is something changes on the UUP dump or MS side, and you can't use that build for extraction. So you switch to the next higher build on the list (now 28000.1199).

I've updated the ZIP in post #1, please try again with the new script.
It's available for download now, thank you so much for the update! :)
 
Sorry for hijacking this thread, had a related question.

I integrated multiple language packs into my 25H2 ISO. I can see each language as an option when installing Windows 11 for the first time. I have also installed the checkpoint update (after having first installed the language packs, applying them, then applying the update in the correct order).

My issue is that I want each language to appear as an option in OOBE (i.e. the screen that appears when someone turns on their computer for the first time). When I install Windows 11 and choose an installation language from the dropdown it only installs Windows in that language… I was hoping to get all of the languages that I added (all the languages in the dropdown) installed simultaneously

How can I accomplish this with an autounattend?

Would appreciate some assistance with this.

Thanks
 
Sorry for hijacking this thread, had a related question.

I integrated multiple language packs into my 25H2 ISO. I can see each language as an option when installing Windows 11 for the first time. I have also installed the checkpoint update (after having first installed the language packs, applying them, then applying the update in the correct order).

My issue is that I want each language to appear as an option in OOBE (i.e. the screen that appears when someone turns on their computer for the first time). When I install Windows 11 and choose an installation language from the dropdown it only installs Windows in that language… I was hoping to get all of the languages that I added (all the languages in the dropdown) installed simultaneously

How can I accomplish this with an autounattend?

Would appreciate some assistance with this.

Thanks
This was mentioned by me and others few posts back ...

Normally Windows removes the visible option in language settings becuase you set a language during install or OOBE. You can prevent this by adding registry key "BlockCleanupOfUnusedPreinstalledLangPacks" to 1 to your indexes in install.wim, google for more!
You can easily just install every language you need, all info is still there.

if you want to select language first in OOBE like you just started a computer for the first time, you need to sysprep it.
 
This was mentioned by me and others few posts back ...

Normally Windows removes the visible option in language settings becuase you set a language during install or OOBE. You can prevent this by adding registry key "BlockCleanupOfUnusedPreinstalledLangPacks" to 1 to your indexes in install.wim, google for more!
You can easily just install every language you need, all info is still there.

if you want to select language first in OOBE like you just started a computer for the first time, you need to sysprep it.
From what I understand all I have to do is just add the registry file with that key set to 1... is there anything else that I am missing?
 
From what I understand all I have to do is just add the registry file with that key set to 1... is there anything else that I am missing?
basically yea, the registry key

mount the install.wim and the edition you want (1 or whatever)

REG LOAD HKLM\WLPHIV <wherever the image is mounted>\Windows\System32\Config\Software
REG ADD "HKLM\WLPHIV\Policies\Microsoft\Control Panel\International" /v BlockCleanupOfUnusedPreinstalledLangPacks /t REG_DWORD /d 1 /f
REG ADD "HKLM\WLPHIV\Microsoft\Windows\CurrentVersion\Policies\TextInput" /v AllowLanguageFeaturesUninstall /t REG_DWORD /d 0 /f
REG UNLOAD HKLM\WLPHIV

unmount wim and commit changes
add install.wim to ISO
 
For simplicity, you can just import a .reg file from the Registry screen:
Code:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Control Panel\International]
"BlockCleanupOfUnusedPreinstalledLangPacks"=dword:00000001

[HKEY_LOCAL_MACHINE\Microsoft\Windows\CurrentVersion\Policies\TextInput]
"AllowLanguageFeaturesUninstall"=dword:00000000

Apply changes to install.wim.
 
Back
Top