Add languages to Windows images

This topic covers how to add one or more languages to your image by adding a language pack and associated language components.

Note

To add a language to your personal PC, go to Settings > Time & Language > Language, and choose a language to install. Learn more.

Add language packs, LIPs, and Features on Demand

In this section, we'll cover how to add languages to an image. We'll:

  1. Check to see if the image includes FODs with language resources in satellite packages.
  2. Add languages and verify all language resources were pulled in for each FOD.
  3. Add a LIP language and its associated language Feature on Demand packages.

After you've added a language, you can save space by removing English language components if you're deploying to non-English regions. When you remove a language, uninstall the language components in the reverse order from how you add them.

Mount your image

Use DISM to mount your Windows image:

md C:\mount\windows
Dism /Mount-Image /ImageFile:install.wim /Index:1 /MountDir:"C:\mount\windows"

Check if your image includes FODs with satellite packages

Before you start adding language components, check to see if the image includes FODs with language resources in satellite packages. If your image includes FODs with langauge components in satellite packages, you'll have to use a language and FOD repository when you add your languages:

  • Starting with Windows 11, use the Languages and Optional Features ISO as a language and FOD repository.
  • For Windows 10, version 21H1 and earlier, if your image includes FODs with language satellite packages you'll have to create a custom FOD repository.

Check for satellite packages:

  1. From a Command prompt, run DISM to see the packages in your image:

    Dism /Image:"C:\mount\windows" /get-packages /format:table
    
  2. In the output, look for Feature on Demand packages that aren't Language Features, that include a language code in their name. For example, MSPaint:

    Microsoft-Windows-MSPaint-FoD-Package~31bf3856ad364e35~amd64~en-US~10.0.19041.1
    Microsoft-Windows-MSPaint-FoD-Package~31bf3856ad364e35~amd64~~10.0.19041.1
    Microsoft-Windows-MSPaint-FoD-Package~31bf3856ad364e35~wow64~en-US~10.0.19041.1
    Microsoft-Windows-MSPaint-FoD-Package~31bf3856ad364e35~wow64~~10.0.19041.1
    

    The two packages here with the en-us language code embedded in the name are satellite packages with language specific resources. If any such package is present in your image, you must build a custom FOD and language pack repository to add languages from. This custom repository needs to include all FODs with satellite packages in your image and all language packs you wish to add. This enables DISM to automatically pull in the right FOD satellite packages when a language is added.

Add language packs, LIPs (LXPs), and language features

Pre-install languages by adding the language packs and their corresponding Feature on Demand packages. If you're adding a LIP language, make sure to also include any associated base languages:

  1. Add a language pack:

    Use DISM to add language packs to a mounted image:

    Dism /Image:"C:\mount\windows" /Add-Package /PackagePath="F:\LanguagesAndOptionalFeatures\Microsoft-Windows-Client-Language-Pack_x64_es-es.cab"
    

    PackagePath can be the mounted Languages and Optional Features ISO, Language pack ISO, or custom FOD and language repository, depending on the Windows version you're using.

  2. If your Windows image included FODs with language components in satellites, check to see that both the language pack(s) and FOD satellite packages containing language resources were added:

    Dism /Image:"C:\mount\windows" /Get-Packages /format:table
    

    You should see something like this in the output:

    Microsoft-Windows-Client-LanguagePack-Package~31bf3856ad364e35~amd64~es-es~10.0.19041.1
    Microsoft-Windows-MSPaint-FoD-Package~31bf3856ad364e35~amd64~en-US~10.0.19041.1
    Microsoft-Windows-MSPaint-FoD-Package~31bf3856ad364e35~amd64~es-es~10.0.19041.1
    Microsoft-Windows-MSPaint-FoD-Package~31bf3856ad364e35~amd64~~10.0.19041.1
    Microsoft-Windows-MSPaint-FoD-Package~31bf3856ad364e35~wow64~en-US~10.0.19041.1
    Microsoft-Windows-MSPaint-FoD-Package~31bf3856ad364e35~wow64~es-es~10.0.19041.1
    Microsoft-Windows-MSPaint-FoD-Package~31bf3856ad364e35~wow64~~10.0.19041.1
    

    In addition to the es-es language pack now appearing in the image, note that the MSPaint Feature on Demand has satellite packages containing both the en-us and es-es language codes. Make sure this is the case for every FOD with language specific satellite packages, for each language you added.

    Note

    FODs with satellites have to be added using DISM /add-capability so that satellite packages are correctly added.

  3. Add LIP languages

    Note

    Starting Windows 11, only language packs distributed as .cab files can be used for imaging. LIP languages that aren't distributed as .cab files will only be available as .appx packages acquired through the Settings app after logging in.

    In this example, we add Catalan, which requires the es-ES base language:

    • Starting with Windows 11, add one of the five LIP languages (ca-ES, eu-ES, gl-ES, id-ID, vi-VN) available as a .cab:

       Dism /Image:"C:\mount\windows" /Add-Package /PackagePath="F:\LanguagesAndOptionalFeatures\Microsoft-Windows-Lip-Language-Pack_x64_ca-es.cab"
      
      
    • For Windows 10, version 1809 through Windows 10, version 21H1, LIP languages are delivered as LXPs:

      DISM /Image:"C:\mount\windows" /Add-ProvisionedAppxPackage /PackagePath="E:\LocalExperiencePack\ca-es\LanguageExperiencePack.ca-es.Neutral.appx /LicensePath:"D:\LocalExperiencePack\ca-es\License.xml"
      

      Where E:\ is the Language pack ISO

      Verify that it's in the image:

      DISM /Image:"C:\mount\windows" /get-provisionedappxpackages
      
    • For earlier versions of Windows 10, LIP languages are delivered as .cab files:

      Dism /Image:C:\mount\windows /add-package /packagepath:C:\LanguagePack\LIPs\ca-ES\LIP_ca-ES64bit.cab
      
  4. Add language and region Features on Demand to support your language packs and LIPs. We recommend including the Basic, Fonts, OCR, Text-to-speech, and Speech recognition FODs if they're available for the languages you're pre-installing. Additionally, include the handwriting language component FOD if you're shipping a device with a pen.

    Not all LIP languages have all language components. Catalan (ca-es), for example, only has basic and handwriting FODs. You can learn which FODs are available for languages in the LP to FOD mapping spreadsheet

    Example: adding Basic, OCR, Text-to-Speech, and Speech Recognition to es-es:

    Dism /Image:"C:\mount\windows" /Add-Capability /capabilityname:Language.Basic~~~es-es~0.0.1.0 /capabilityname:Language.Handwriting~~~es-es~0.0.1.0 /capabilityname:Language.OCR~~~es-es~0.0.1.0 /capabilityname:Language.Speech~~~es-es~0.0.1.0 /capabilityname:Language.TextToSpeech~~~es-es~0.0.1.0 /source:C:\repository
    

    Example: adding Basic and Handwriting to ca-es:

    Dism /Image:"C:\mount\windows" /Add-Capability
    /capabilityname:Language.Basic~~~ca-es~0.0.1.0
    /capabilityname:Language.Handwriting~~~ca-es~0.0.1.0
    /source:C:\repository
    

    Verify that these packages are in the image:

    Dism /Image:"C:\mount\windows" /Get-Packages /format:table
    Dism /Image:"C:\mount\windows" /Get-Capabilities /format:table | findstr /i "installed"
    

    Note

    Changes are restricted to administrator accounts. Standard users will get a limited experience. For more information, see Language features aren't displayed in Windows 10.

  5. If you added an update package (LCU) to your image prior to adding languages, reinstall the update package to ensure all of the language resources for the update are in your image. See Add updates to a Windows image for more information.

Remove languages, LIPs, LXPs, and Features on Demand

Important

You can't remove a language pack from an offline Windows image if there are pending online actions. The Windows image should be a recently installed and captured image. This will guarantee that the Windows image does not have any pending online actions that require a reboot.

  1. Get a list of packages and features installed in your image:

    Dism /Image:"C:\mount\windows" /Get-Packages /format:table
    Dism /Image:"C:\mount\windows" /Get-Capabilities /format:table | findstr /i "installed"
    
  2. Remove languages, .cab-based LIPs, and Features On Demand:

    Dism /Image:"C:\mount\windows" /Remove-Package /PackageName:<language pack name> /PackageName:<feature on demand name> ...
    
  3. Remove LIPs added through LXPs:

    Dism /remove-provisionedappxpackage /packagename:Microsoft.LanguageExperiencePack<lang_version>_neutral__8wekyb3d8bbwe
    
  4. Verify that they're no longer in your image:

    Dism /Image:"C:\mount\windows" /Get-Packages /format:table
    Dism /Image:"C:\mount\windows" /Get-Capabilities /format:table | findstr /i "installed"
    

Change your default language, locale, and other international settings

  • Starting Windows 11, the default System UI Language set by DISM is left unaltered on all editions except the Home edition. For all commercial editions the language chosen during the Out of Box Experience (OOBE) is set as the System Preferred UI language and Windows will be displayed in this language and for Home SKU the language chosen at OOBE will continue to be the default System UI Language.

  • As of Windows 10, version 2004, if an .appx-based Language Experience Pack (LXP) backed language is passed as an argument then the language will be set as the System Preferred UI language and its parent language will be set as the Default System UI language. In prior versions only .cab based language packs were supported.

    Dism /Image:"C:\mount\windows" /Set-AllIntl:es-es
    

    See which language settings are available:

    Dism /Image:"C:\mount\windows" /Get-Intl
    
  • For online images, use Control Panel, or the International Settings PowerShell cmdlets: Get-WinSystemLocale and Set-WinSystemLocale <language>. This works with languages delivered as LXPs.

For more options, see

Add languages to the recovery environment (Windows RE)

For any language you add to Windows, add the language to the Windows Recovery Environment (WinRE), whenever possible.

Not all languages or LIPs have localized recovery images.

Use languages from the Languages and Optional Features ISO, not from the Windows 10 ADK, to localize WinRE.

Note

Known issue: Windows RE included with Windows 10 October 2018 Update Thai language image (en-US base language + th-th language pack) shipped with an issue in which an end user will only see UI components (or English) without Thai language text in the Windows Recovery Environment, the text displayed during recovery (Push-button reset), and/or certain screens during the reboot process of feature updates. To fix this issue pre-install the 2018.11D Quality Update.

  1. Mount the recovery image.

    • Offline: the recovery image is inside the Windows image:

      md C:\mount\winre
      Dism /Mount-Image /ImageFile:"C:\mount\windows\Windows\System32\Recovery\winre.wim" /index:1 /MountDir:"C:\mount\winre"
      
    • Online:

      md C:\mount\winre
      Dism /Mount-Image /ImageFile:"C:\Windows\System32\Recovery\winre.wim" /index:1 /MountDir:"C:\mount\winre"
      

      Note, Windows RE is inside the Windows image until the Out of Box Experience, after which it is moved to a separate recovery partition.

  2. Add languages:

    D:
    cd D:\Windows Preinstallation Environment\x64\WinPE_OCs\es-es\
    Dism /Image:"C:\mount\winre" /Add-Package /PackagePath:"D:\Windows Preinstallation Environment\x64\WinPE_OCs\es-es\lp.cab"
    Dism /Image:"C:\mount\winre" /Add-Package /PackagePath:"D:\Windows Preinstallation Environment\x64\WinPE_OCs\es-es\WinPE-Rejuv_es-es.cab"
    Dism /Image:"C:\mount\winre" /Add-Package /PackagePath:"D:\Windows Preinstallation Environment\x64\WinPE_OCs\es-es\WinPE-EnhancedStorage_es-es.cab"
    Dism /Image:"C:\mount\winre" /Add-Package /PackagePath:"D:\Windows Preinstallation Environment\x64\WinPE_OCs\es-es\WinPE-Scripting_es-es.cab"
    Dism /Image:"C:\mount\winre" /Add-Package /PackagePath:"D:\Windows Preinstallation Environment\x64\WinPE_OCs\es-es\WinPE-SecureStartup_es-es.cab"
    Dism /Image:"C:\mount\winre" /Add-Package /PackagePath:"D:\Windows Preinstallation Environment\x64\WinPE_OCs\es-es\WinPE-SRT_es-es.cab"
    Dism /Image:"C:\mount\winre" /Add-Package /PackagePath:"D:\Windows Preinstallation Environment\x64\WinPE_OCs\es-es\WinPE-WDS-Tools_es-es.cab"
    Dism /Image:"C:\mount\winre" /Add-Package /PackagePath:"D:\Windows Preinstallation Environment\x64\WinPE_OCs\es-es\WinPE-WMI_es-es.cab"
    Dism /Image:"C:\mount\winre" /Add-Package /PackagePath:"D:\Windows Preinstallation Environment\x64\WinPE_OCs\es-es\WinPE-StorageWMI_es-es.cab"
    Dism /Image:"C:\mount\winre" /Add-Package /PackagePath:"D:\Windows Preinstallation Environment\x64\WinPE_OCs\es-es\WinPE-HTA_es-es.cab"
    

    Where D:\ is the Languages and Optional Features ISO.

  3. Verify that they're in the image:

    Dism /Get-Packages /Image:"C:\mount\winre"
    

    Example output from /Get-Packages:

    Package Identity : Microsoft-Windows-WinPE-Rejuv_es-es ... es-es~10.0.9926.0 State : Installed
    
  4. Commit changes to the recovery image:

    Dism /Commit-Image /MountDir:"C:\mount\winre"
    

    For online images, also remove the mount folder:

    rmdir /s "C:\mount\winre"
    

Capture the changes

  • Offline: For Windows images (install.wim)

    Commit changes to the Windows image:

    Dism /Commit-Image /MountDir:"C:\mount\windows"
    
  • Online: Modify a running Windows installation

    Generalize and capture the image:

    %WINDIR%\system32\sysprep\sysprep.exe /generalize /shutdown /oobe
    

    To learn more, see generalize.

Next steps

Localize more of Windows:

  • Out of Box Experience (OOBE): Create localized end user license agreements (EULA), registration pages, and instructions for pairing keyboards and mice.
  • Retail demo experience: Showcase your new devices on the retail sales floor with localized content.

Localize the installation process:

Localize Windows

Features On Demand

Add languages to Windows Recovery Environment (WinRE)

Service a Windows Image Using DISM

DISM - Deployment Image Servicing and Management Technical Reference for Windows

DISM Languages and International Servicing Command-Line Options

DISM Unattended Servicing Command-Line Options

Windows System Image Manager Technical Reference