Idiomes i veus que vols instal·lar
$languageTags = @(
“en-US”, # English (US)
“en-GB”, # English (UK)
“es-ES”, # Spanish (Spain)
“ca-ES”, # Catalan (Spain)
“fr-FR”, # French (France)
“de-DE” # German
)
ObtĂ© la llista actual d’idiomes
$currentLangs = Get-WinUserLanguageList | ForEach-Object { $_.LanguageTag }
foreach ($lang in $languageTags) {
Write-Host “🔄 Processant $lang…” -ForegroundColor Cyan
try {
# Afegeix l’idioma si no hi Ă©s
if (-not ($currentLangs -contains $lang)) {
Write-Host “âž• Afegint idioma $lang…”
$langList = Get-WinUserLanguageList
$langList.Add($lang)
Set-WinUserLanguageList $langList -Force
} else {
Write-Host “✔️ L’idioma $lang ja estĂ instal·lat.”
}
# Comprova si la veu bà sica ja està instal·lada
$capability = "Language.$lang~Basic~~~"
$installed = Get-WindowsCapability -Online | Where-Object { $_.Name -eq $capability }
if ($installed.State -ne "Installed") {
Write-Host "⬇️ Instal·lant veu bà sica per a $lang..."
Add-WindowsCapability -Online -Name $capability -ErrorAction Stop
} else {
Write-Host "✔️ Veu bà sica ja instal·lada per a $lang."
}
# Instal·la reconeixement de veu si no hi és
$speechCap = "Language.$lang~Speech~~~"
$speechInstalled = Get-WindowsCapability -Online | Where-Object { $_.Name -eq $speechCap }
if ($speechInstalled.State -ne "Installed") {
Write-Host "🎙️ Instal·lant reconeixement de veu per a $lang..."
Add-WindowsCapability -Online -Name $speechCap -ErrorAction SilentlyContinue
} else {
Write-Host "✔️ Reconeixement de veu ja instal·lat per a $lang."
}
} catch {
Write-Warning ("Error instal·lant per a $lang: " + $_.Exception.Message)
}
}
Mostra les veus disponibles al final
Write-Host “`nđź“‹ Veus SAPI instal·lades:” -ForegroundColor Yellow
Add-Type -AssemblyName System.Speech
(New-Object System.Speech.Synthesis.SpeechSynthesizer).GetInstalledVoices() |
ForEach-Object { “• ” + $_.VoiceInfo.Name }