--- title: LanguagePackManagement CSP description: Learn more about the LanguagePackManagement CSP. ms.date: 05/20/2024 --- # LanguagePackManagement CSP [!INCLUDE [Windows Insider tip](includes/mdm-insider-csp-note.md)] The Language Pack Management CSP allows a way to easily add languages and related language features and manage settings like System Preferred UI Language, System Locale, Input method (Keyboard), Locale, Speech Recognizer, User Preferred Language List. This CSP can be accessed using the new [LanguagePackManagement](/powershell/module/languagepackmanagement) PowerShell module. The following list shows the LanguagePackManagement configuration service provider nodes: - ./Device/Vendor/MSFT/LanguagePackManagement - [Install](#install) - [{Language ID}](#installlanguage-id) - [CopyToDeviceInternationalSettings](#installlanguage-idcopytodeviceinternationalsettings) - [EnableLanguageFeatureInstallations](#installlanguage-idenablelanguagefeatureinstallations) - [ErrorCode](#installlanguage-iderrorcode) - [StartInstallation](#installlanguage-idstartinstallation) - [Status](#installlanguage-idstatus) - [InstalledLanguages](#installedlanguages) - [{Language ID}](#installedlanguageslanguage-id) - [LanguageFeatures](#installedlanguageslanguage-idlanguagefeatures) - [Providers](#installedlanguageslanguage-idproviders) - [LanguageSettings](#languagesettings) - [SystemPreferredUILanguages](#languagesettingssystempreferreduilanguages) ## Install | Scope | Editions | Applicable OS | |:--|:--|:--| | ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | ```Device ./Device/Vendor/MSFT/LanguagePackManagement/Install ``` Language to be installed or being installed. **Description framework properties**: | Property name | Property value | |:--|:--| | Format | `node` | | Access Type | Get | ### Install/{Language ID} | Scope | Editions | Applicable OS | |:--|:--|:--| | ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | ```Device ./Device/Vendor/MSFT/LanguagePackManagement/Install/{Language ID} ``` Language tag of the language to be installed or being installed. **Description framework properties**: | Property name | Property value | |:--|:--| | Format | `node` | | Access Type | Add, Delete, Get | | Dynamic Node Naming | UniqueName: Language tag of the language to be installed or being installed. | #### Install/{Language ID}/CopyToDeviceInternationalSettings | Scope | Editions | Applicable OS | |:--|:--|:--| | ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | ```Device ./Device/Vendor/MSFT/LanguagePackManagement/Install/{Language ID}/CopyToDeviceInternationalSettings ``` Copies the language to the international settings (that is, locale, input layout, speech recognizer, preferred UI language) of the device immediately after installation if the value is true. Default value is false. **Description framework properties**: | Property name | Property value | |:--|:--| | Format | `bool` | | Access Type | Add, Delete, Get, Replace | | Default Value | false | **Allowed values**: | Value | Description | |:--|:--| | false (Default) | Don't copy the language to the international settings immediately after installation. | | true | Copy the language to the international settings immediately after installation. | #### Install/{Language ID}/EnableLanguageFeatureInstallations | Scope | Editions | Applicable OS | |:--|:--|:--| | ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | ```Device ./Device/Vendor/MSFT/LanguagePackManagement/Install/{Language ID}/EnableLanguageFeatureInstallations ``` Enables installations of all available language features when the value is true. Default value is true. **Description framework properties**: | Property name | Property value | |:--|:--| | Format | `bool` | | Access Type | Add, Delete, Get, Replace | | Default Value | true | **Allowed values**: | Value | Description | |:--|:--| | true (Default) | Install all available language features. | | false | Install only the required language features. | #### Install/{Language ID}/ErrorCode | Scope | Editions | Applicable OS | |:--|:--|:--| | ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | ```Device ./Device/Vendor/MSFT/LanguagePackManagement/Install/{Language ID}/ErrorCode ``` Error code of queued language installation. 0 if there is no error. **Description framework properties**: | Property name | Property value | |:--|:--| | Format | `int` | | Access Type | Get | #### Install/{Language ID}/StartInstallation | Scope | Editions | Applicable OS | |:--|:--|:--| | ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | ```Device ./Device/Vendor/MSFT/LanguagePackManagement/Install/{Language ID}/StartInstallation ``` Execution node to queue a language for installation on the device. **Description framework properties**: | Property name | Property value | |:--|:--| | Format | `null` | | Access Type | Exec | #### Install/{Language ID}/Status | Scope | Editions | Applicable OS | |:--|:--|:--| | ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | ```Device ./Device/Vendor/MSFT/LanguagePackManagement/Install/{Language ID}/Status ``` Status of the language queued for install. 0 - not started; 1 - in progress; 2 - succeeded; 3 - failed; 4 - partially succeeded. **Description framework properties**: | Property name | Property value | |:--|:--| | Format | `int` | | Access Type | Get | ## InstalledLanguages | Scope | Editions | Applicable OS | |:--|:--|:--| | ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | ```Device ./Device/Vendor/MSFT/LanguagePackManagement/InstalledLanguages ``` Languages currently installed on the device. **Description framework properties**: | Property name | Property value | |:--|:--| | Format | `node` | | Access Type | Get | ### InstalledLanguages/{Language ID} | Scope | Editions | Applicable OS | |:--|:--|:--| | ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | ```Device ./Device/Vendor/MSFT/LanguagePackManagement/InstalledLanguages/{Language ID} ``` Language tag of an installed language on the device. Delete to uninstall. **Description framework properties**: | Property name | Property value | |:--|:--| | Format | `node` | | Access Type | Delete, Get | | Dynamic Node Naming | ClientInventory | #### InstalledLanguages/{Language ID}/LanguageFeatures | Scope | Editions | Applicable OS | |:--|:--|:--| | ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | ```Device ./Device/Vendor/MSFT/LanguagePackManagement/InstalledLanguages/{Language ID}/LanguageFeatures ``` Numeric representation of the language features installed. Basic Typing - 1 (0x1), Fonts - 2 (0x2), Handwriting - 4 (0x4), Speech - 8 (0x8), TextToSpeech - 16 (0x10), OCR - 32 (0x20), LocaleData - 64 (0x40), SupplementFonts - 128 (0x80). **Description framework properties**: | Property name | Property value | |:--|:--| | Format | `int` | | Access Type | Get | #### InstalledLanguages/{Language ID}/Providers | Scope | Editions | Applicable OS | |:--|:--|:--| | ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | ```Device ./Device/Vendor/MSFT/LanguagePackManagement/InstalledLanguages/{Language ID}/Providers ``` Numeric representation of how a language is installed. 1 - The system language pack is installed; 2 - The Local Experience Pack is installed; 3 - Both are installed. **Description framework properties**: | Property name | Property value | |:--|:--| | Format | `int` | | Access Type | Get | ## LanguageSettings | Scope | Editions | Applicable OS | |:--|:--|:--| | ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | ```Device ./Device/Vendor/MSFT/LanguagePackManagement/LanguageSettings ``` Language settings of the device. **Description framework properties**: | Property name | Property value | |:--|:--| | Format | `node` | | Access Type | Get | ### LanguageSettings/SystemPreferredUILanguages | Scope | Editions | Applicable OS | |:--|:--|:--| | ✅ Device
❌ User | ✅ Pro
✅ Enterprise
✅ Education
✅ Windows SE
✅ IoT Enterprise / IoT Enterprise LTSC | ✅ Windows Insider Preview | ```Device ./Device/Vendor/MSFT/LanguagePackManagement/LanguageSettings/SystemPreferredUILanguages ``` System Preferred UI Language of the device. **Description framework properties**: | Property name | Property value | |:--|:--| | Format | `chr` (string) | | Access Type | Get, Replace | ## Examples 1. Enumerate installed languages and features with GET command on the "InstalledLanguages" node. Below are the samples: **GET./Device/Vendor/MSFT/LanguagePackManagement/InstalledLanguages** **GET./Device/Vendor/MSFT/LanguagePackManagement/InstalledLanguages/zh-CN/Providers** **GET./Device/Vendor/MSFT/LanguagePackManagement/InstalledLanguages/zh-CN/LanguageFeatures** **GET./Device/Vendor/MSFT/LanguagePackManagement/InstalledLanguages/ja-JP/Providers** **GET./Device/Vendor/MSFT/LanguagePackManagement/InstalledLanguages/ja-JP/LanguageFeatures** The nodes under **InstalledLanguages** are the language tags of the installed languages. The **providers** node under language tag is an integer representation of either [language pack](/windows-hardware/manufacture/desktop/available-language-packs-for-windows?view=windows-11&preserve-view=true) or [LXPs](https://www.microsoft.com/store/collections/localexperiencepacks?cat0=devices&rtc=1). - **1**- Indicates that only the Language Pack cab is installed. - **2**- Indicates that only the LXP is installed. - **3**- Indicates that both are installed. The **LanguageFeatures** node is a bitmap representation of what [Language Features](/windows-hardware/manufacture/desktop/features-on-demand-language-fod?view=windows-11&preserve-view=true) are installed for a language on a device: - Basic Typing = 0x1 - Fonts = 0x2 - Handwriting = 0x4 - Speech = 0x8 - TextToSpeech = 0x10 - OCR = 0x20 - LocaleData = 0x40 - SupplementFonts = 0x80 2. Install language pack and features with the EXECUTE command on the **StartInstallation** node of the language. The language installation will try to install the best matched language packs and features for the provided language. > [!NOTE] > If not previously set, installation will set the policy to block cleanup of unused language packs and features on the device to prevent unexpected deletion. - Admins can optionally copy the language to the device’s international settings immediately after installation by using the REPLACE command on the "CopyToDeviceInternationalSettings" node of the language. false (default)- will take no action; true- will set the following international settings to reflect the newly installed language: - System Preferred UI Language - System Locale - Default settings for new users - Input Method (keyboard) - Locale - Speech Recognizer - User Preferred Language List - Admins can optionally configure whether they want to install all available language features during installation using the REPLACE command on the "EnableLanguageFeatureInstallations" node of the language. false- will install only required features; true (default)- will install all available features. Here are the sample commands to install French language with required features and copy to the device's international settings: 1. **ADD ./Device/Vendor/MSFT/LanguagePackManagement/Install/fr-FR/** 2. **REPLACE ./Device/Vendor/MSFT/LanguagePackManagement/Install/fr-FR/CopyToDeviceInternationalSettings (true)** 3. **REPLACE ./Device/Vendor/MSFT/LanguagePackManagement/Install/fr-FR/EnableLanguageFeatureInstallations (false)** 4. **EXECUTE ./Device/Vendor/MSFT/LanguagePackManagement/Install/fr-FR/StartInstallation** The installation is an asynchronous operation. You can query the **Status** or **ErrorCode** nodes by using the following commands: **GET./Device/Vendor/MSFT/LanguagePackManagement/Install/fr-FR/Status** **GET./Device/Vendor/MSFT/LanguagePackManagement/Install/fr-FR/ErrorCode** Status: 0 – not started; 1 – in progress; 2 – succeeded; 3 – failed; 4 - partial success (A partial success indicates not all the provisioning operations succeeded, for example, there was an error installing the language pack or features). ErrorCode: An HRESULT that could help diagnosis if the installation failed or partially failed. 3. Delete installed Language with the DELETE command on the installed language tag. The delete command is a fire and forget operation. The deletion will run in background. IT admin can query the installed language later and resend the command if needed. Below is a sample command to delete the zh-CN language. **DELETE./Device/Vendor/MSFT/LanguagePackManagement/InstalledLanguages/zh-CN** > [!NOTE] > The deletion will ignore the policy of block cleanup of unused language packs. 4. Get/Set System Preferred UI Language with GET or REPLACE command on the "SystemPreferredUILanguages" Node **./Device/Vendor/MSFT/LanguagePackManagement/LanguageSettings/SystemPreferredUILanguages** ## Related articles [Configuration service provider reference](configuration-service-provider-reference.md)