I've written a PowerShell GUI to download Language Packs for most versions of Windows 10 & 11.
This replaces searching UUP dump or rg-adguard for the correct version, downloading the links and renaming files.
We're still using UUP dump to generate the expiring download links. The script will skip files with identical names in the current folder.

What versions are supported?
Do I need ESD2CAB?
Yes, click on the GUI's download link to open abbodi's GitHub.
This script will download and run ESD2CAB for you, converting all *.esd files to CAB format.
Why do I get a PowerShell execution policy error?
Your default execution policy prevents unsigned scripts from running. Run the W10_11LP.bat instead.
How do I check if the downloaded packages are the correct version?
After files are downloaded, the script will report the packages' SHA-1 values.
You can compare the SHA-1 against UUPdump (select a Windows build, under Browse Files / Search enter "language").
ie. https://uupdump.net/findfiles.php?id=a84eaaea-f57c-4271-a642-4abf996a7101&q=language
Why do you use a different UUP than abbodi's W10MUI?
Language Packs are some of the first Windows packages built, and they're shared across later versions in the same family. While my source builds may be different, all packages have identical SHA-1 values to abbodi's lists. There's no functional difference btw them.
If you're interested, my source builds are listed in the script.
What about Win 7 & 8 versions?
There's a different script for you (included in the ZIP), because the languages list isn't the same as W10/11.
While you could just copy the URL from pastebin or other sources, I already wrote a GUI.

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):
Replace the -LanguageList "en-US, en-GB" with your ordered list of keyboard languages.
How hard was it writing the GUI?
When you find a good WinForms code example, it's easy to modify and make your own layout. I moved and sized the visual elements by hand.
If you noticed, the OK button isn't active until the user selects from all menu boxes. And W11 doesn't have a x86 version, checking that option will always uncheck the button.
This replaces searching UUP dump or rg-adguard for the correct version, downloading the links and renaming files.
We're still using UUP dump to generate the expiring download links. The script will skip files with identical names in the current folder.

Code:
Downloading "Microsoft-Windows-Client-LanguagePack-Package_cs-cz-amd64-cs-cz.esd"
Downloading "Microsoft-Windows-LanguageFeatures-Basic-cs-cz-Package-amd64.cab"
Downloading "Microsoft-Windows-LanguageFeatures-Handwriting-cs-cz-Package-amd64.cab"
Downloading "Microsoft-Windows-LanguageFeatures-OCR-cs-cz-Package-amd64.cab"
Downloading "Microsoft-Windows-LanguageFeatures-TextToSpeech-cs-cz-Package-amd64.cab"
SHA-1 Hash:
e7b2986577196a4dd08693327a7209dae02545e5 Microsoft-Windows-Client-LanguagePack-Package_cs-cz-amd64-cs-cz.esd
4e6b61b4e3654d03d765bbf59ab6fc45eb5b4c2f Microsoft-Windows-LanguageFeatures-Basic-cs-cz-Package-amd64.cab
4ef0b346760bb818b830b218296c5bfd7b11d38d Microsoft-Windows-LanguageFeatures-Handwriting-cs-cz-Package-amd64.cab
702a8eddbc454768efabb4c04ea540b464a6b7de Microsoft-Windows-LanguageFeatures-OCR-cs-cz-Package-amd64.cab
f980392aca2b3d424c8ca73446beb7e8026bb14f Microsoft-Windows-LanguageFeatures-TextToSpeech-cs-cz-Package-amd64.cab
What versions are supported?
- Win 11 24H2
- Win 11 22H2 & 23H2 are the same
- Win 11 21H2
- Win 10 2004, 20H2, 21H1 & 21H2 are the same
- Win 10 1903 & 1909 are the same
- Win 10 1809
Do I need ESD2CAB?
This script will download and run ESD2CAB for you, converting all *.esd files to CAB format.
Why do I get a PowerShell execution policy error?
Your default execution policy prevents unsigned scripts from running. Run the W10_11LP.bat instead.
How do I check if the downloaded packages are the correct version?
After files are downloaded, the script will report the packages' SHA-1 values.
You can compare the SHA-1 against UUPdump (select a Windows build, under Browse Files / Search enter "language").
ie. https://uupdump.net/findfiles.php?id=a84eaaea-f57c-4271-a642-4abf996a7101&q=language
Why do you use a different UUP than abbodi's W10MUI?
Language Packs are some of the first Windows packages built, and they're shared across later versions in the same family. While my source builds may be different, all packages have identical SHA-1 values to abbodi's lists. There's no functional difference btw them.
If you're interested, my source builds are listed in the script.
What about Win 7 & 8 versions?
There's a different script for you (included in the ZIP), because the languages list isn't the same as W10/11.
While you could just copy the URL from pastebin or other sources, I already wrote a GUI.

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 |
Replace the -LanguageList "en-US, en-GB" with your ordered list of keyboard languages.
How hard was it writing the GUI?
When you find a good WinForms code example, it's easy to modify and make your own layout. I moved and sized the visual elements by hand.
If you noticed, the OK button isn't active until the user selects from all menu boxes. And W11 doesn't have a x86 version, checking that option will always uncheck the button.
Attachments
Last edited: