Fixing installed Languages

If a language is missing after resetting this client, following script can be used

#list of languages to check
$languagesToCheck = @('de-DE', 'en-US', 'fr-FR', 'it-IT')
#function to get installed languages and their language packs
function Get-InstalledLanguages {
    try {
        $installedLanguages = Get-InstalledLanguage
        return $installedLanguages
    } catch {
        Write-Error "Failed to retrieve installed languages: $_"
        return $null
    }
}
#function to install language pack
function Install-LanguagePack {
    param (
        [string]$languageCode
    )
    try {
        Install-Language -Language $languageCode -ErrorAction Stop
        Write-Output "Successfully installed Language Pack $languageCode"
    } catch {
        Write-Error "Failed to install Language Pack $languageCode : $_"
    }
}
#function to check if a language and LpCab are installed
function Check-LanguageAndLpCab {
    param (
        [string]$languageCode
    )
    $installedLanguages = Get-InstalledLanguages
    if ($installedLanguages -eq $null) {
        Write-Error "Failed to check installed languages. Exiting..."
        return
    }
    $language = $installedLanguages | Where-Object { $_.LanguageId -eq $languageCode }
    if ($null -ne $language) {
        #check if LpCab is installed for the language
        if ($language.'LanguagePacks' -match 'LpCab') {
            Write-Output "LpCab $languageCode is installed"
        } else {
            Write-Output "LpCab $languageCode is not installed"
        }
    } else {
        Write-Output "Language $languageCode not found"
        Install-LanguagePack -languageCode $languageCode
    }
}
#check each language in the list
foreach ($language in $languagesToCheck) {
    Check-LanguageAndLpCab -languageCode $language
}