In modern versions of Windows 11 22H2 and Windows 10 21H2+, you can use PowerShell to install and manage language packs and language interface language packs (LIPs). In previous builds of Windows, the only way to add or remove language packs was to use the classic Control Panel or Settings user interface (quick URI access command: ms-settings:regionlanguage
).
In recent versions of Windows, a built-in PowerShell module LanguagePackManagement has been added. You can use the cmdlets from this module to install an optional Windows language pack and set your preferred language for the Windows user interface.
You can view a list of available cmdlets in the module:
Get-Command -Module LanguagePackManagement
Get-SystemPreferredUILanguage
(Get-PreferredLanguage
,Get-SystemLanguage
) – get the current default UI language in Windows;Set-SystemPreferredUILanguage
(Set-PreferredLanguage
) – to set a preferred Windows interface language;Get-InstalledLanguage
(Get-Language
,Set-SystemLanguage
) –list installed language packs and features;Install-Language
— to install a language pack on Windows;Uninstall-Language
– to remove a language pack.
Let’s look at the list of available language packs on a computer running Windows 10:
Get-InstalledLanguage
In this example, only the German language pack is installed on Windows (Language Packs = LpCab
). The English language is available as an input language only.
Language Language Packs Language Features -------- -------------- ----------------- de-DE LpCab BasicTyping, Handwriting, Speech, TextToSpeech, OCR en-US None BasicTyping, Handwriting, OCR
Run the following command to add the English language pack on Windows:
Install-Language -Language en-US
Windows downloads and installs the specified language pack and additional components from Microsoft servers.
Full list of available language packs for Windows:
Tag | Description |
ar-SA | Arabic (Saudi Arabia) |
bn-BD | Bangla (Bangladesh) |
bn-IN | Bangla (India) |
cs-CZ | Czech (Czech Republic) |
da-DK | Danish (Denmark) |
de-AT | Austrian German |
de-CH | “Swiss” German |
de-DE | Standard German |
el-GR | Modern Greek |
en-AU | Australian English |
en-CA | Canadian English |
en-GB | British English |
en-IE | Irish English |
en-IN | Indian English |
en-NZ | New Zealand English |
en-US | US English |
en-ZA | English (South Africa) |
es-AR | Argentine Spanish |
es-CL | Chilean Spanish |
es-CO | Colombian Spanish |
es-ES | Castilian Spanish (Central-Northern Spain) |
es-MX | Mexican Spanish |
es-US | American Spanish |
fi-FI | Finnish (Finland) |
fr-BE | Belgian French |
fr-CA | Canadian French |
fr-CH | “Swiss” French |
fr-FR | Standard French (France) |
he-IL | Hebrew (Israel) |
hi-IN | Hindi (India) |
hu-HU | Hungarian (Hungary) |
id-ID | Indonesian (Indonesia) |
it-CH | “Swiss” Italian |
it-IT | Standard Italian (Italy) |
jp-JP | Japanese (Japan) |
ko-KR | Korean (Republic of Korea) |
nl-BE | Belgian Dutch |
nl-NL | Standard Dutch Netherlands) |
no-NO | Norwegian (Norway) |
pl-PL | Polish (Poland) |
pt-BR | Brazilian Portuguese |
pt-PT | European Portuguese (Portugal) |
ro-RO | Romanian (Romania) |
fr-fr | Russian (Russian Federation) |
sk-SK | Slovak (Slovakia) |
sv-SE | Swedish (Sweden) |
ta-IN | Indian Tamil |
ta-LK | Sri Lankan Tamil |
th-TH | Thai (Thailand) |
tr-TR | Turkish (Turkey) |
zh-CN | Mainland China, simplified characters |
zh-HK | Hong Kong, traditional characters |
zh-TW | Taiwan, traditional characters |
There are additional options that you can use with the Install-Language command:
-CopyToSettings
– lets you set a default language and apply these settings to the Welcome Screen and to new user accounts;In Windows 11, you can copy the current user’s language and keyboard layout settings and apply them to the Welcome screen and to new users:Copy-UserInternationalSettingsToSystem -WelcomeScreen $true -NewUser $true
-ExcludeFeatures
– allows to exclude additional language pack components (FoD, Features on Demand) from installation. These may be OCR, TextToSpeech, or Handwriting.
To display the preferred Windows interface language:
Get-SystemPreferredUILanguage
In this case, German (de-DE) is the current interface language in Windows.
Run the following command to set English as your preferred Windows interface language:
Set-SystemPreferredUILanguage -Language en-US
You will need to restart Windows to apply the new language pack.
Restart-Computer
After the restart, the Windows interface language will change to English.
To uninstall a language pack that you do not need:
Uninstall-Language -Language fr-FR
Set-WinUserLanguageList
cmdlet to remove additional language keyboard layouts in Windows.If your computer is disconnected from the Internet, you can install additional language packs and components offline using DISM (https://learn.microsoft.com/en-us/azure/virtual-desktop/windows-11-language-packs), mount the ISO image in Windows, and install a language pack and its components using the commands below:
Dism /Online /Add-Package /PackagePath:"D:\Microsoft-Windows-LanguageFeatures-Basic-fr-fr-Package~31bf3856ad364e35~amd64~~.cab"
Dism /Online /Add-Package /PackagePath:D:\LanguagesAndOptionalFeatures\Microsoft-Windows-Client-Language-Pack_x64_fr-fr.cab
Dism /Online /Add-Capability /capabilityname:Language.Basic~~~fr-fr~0.0.1.0 /source:D:\LanguagesAndOptionalFeatures
Dism /Online /Add-Capability /capabilityname:Language.Handwriting~~~fr-fr~0.0.1.0 /source:D:\LanguagesAndOptionalFeatures
Dism /Online /Add-Capability /capabilityname:Language.OCR~~~fr-fr~0.0.1.0 /source:D:\LanguagesAndOptionalFeatures
Dism /Online /Add-Capability /capabilityname:Language.Speech~~~fr-fr~0.0.1.0 /source:D:\LanguagesAndOptionalFeatures
Dism /Online /Add-Capability /capabilityname:Language.TextToSpeech~~~fr-fr~0.0.1.0 /source:D:\LanguagesAndOptionalFeatures
3 comments
Thank you so much!!!
It very easily downloaded the en-US language pack on my Windows 11 Single Language and then I’ve just had to modify 2 registry keys to set it as default (“0409” value in my case):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Language
“Default” and “InstallLanguage”
Method to add the language in the user’s language list.
Run the commands with user context:
#Get a language list for the current account.
$OldList = Get-WinUserLanguageList
$OldList.Add(“fr-FR”)
#Sets the language list and associated properties for the current user account.
Set-WinUserLanguageList $OldList -Force
Hey thanks – but Japanese is ja-JP, not jp-JP