cenko.tech

Forcing Windows 11 to install the full language pack

Changing the display language in Settings can leave half of Windows in the old language. Four PowerShell cmdlets install the full pack and apply it everywhere.

Changing the display language in Settings → Time & language → Language & region on Windows 11 sometimes installs only a simplified, partial language pack. Some of the interface switches over, but many system elements, menus and dialogs stay in the old language, even after several restarts.

I hit this when switching a Polish install of Windows 11 to English. The same thing can happen when you add a language, such as fr-FR, to a system that was installed from an ISO in a different language.

The symptom#

  • Some UI elements switch to the new language.
  • Many system menus and dialogs stay in the old one.
  • Restarting does not help, no matter how many times.

The fix#

One PowerShell script, run as Administrator. Set $targetLanguage to the language you want, for example en-US, en-GB, pl-PL, fr-FR or pt-BR:

# --- Variables ---
$targetLanguage = "en-US" # Change to en-GB if you prefer British English

# --- Install Language Pack ---
Install-Language -Language $targetLanguage

# --- Set User Display Language ---
Set-WinUserLanguageList $targetLanguage -Force

# --- Copy Settings to System and Welcome Screen ---
Copy-UserInternationalSettingsToSystem -WelcomeScreen $True -NewUser $True

# --- Force a Restart to Apply Changes ---
Restart-Computer -Force

What each step does#

Cmdlet What it does
Install-Language Forces the full language pack instead of the simplified one Settings installs.
Set-WinUserLanguageList Makes the target language the active one for the current user.
Copy-UserInternationalSettingsToSystem Copies the language and regional settings to system processes, the Welcome and lock screen, and new user accounts.
Restart-Computer -Force Restarts straight away so the change applies everywhere.

Copy-UserInternationalSettingsToSystem needs both -WelcomeScreen and -NewUser. Leave one out and PowerShell stops to ask for it. Set -NewUser $False if future accounts should keep the old language.

Good to know#

  • It needs Windows 11 22H2 or later, because that is where Install-Language first appeared. It also needs an internet connection and an Administrator session.
  • The install can look stuck for up to about 20 minutes. It is not. Let it run.
  • Set-WinUserLanguageList replaces your whole language list. To keep another language installed for typing, pass an array instead:
Set-WinUserLanguageList @("en-US","pl-PL") -Force

If Install-Language is not recognised on your build, the fallback is Add-WindowsCapability, adjusting the language tag as needed:

Add-WindowsCapability -Online -Name "Language.Basic~~~en-US~0.0.1.0"

The script and the full instructions are in the repository on GitHub.

cd ~/blog