My Win 10 system has Spanish language.
I mean to fully operate a PowerShell session in English.
Across everything I tried (see below), I managed to change the UICultur
The following function will change both Culture
and UICulture
for the current PowerShell session in PowerShell 5.1:
function Set-PowerShellLanguage {
Param (
[Parameter(Mandatory)]
[System.Globalization.CultureInfo] $CultureInfo
)
if ($CultureInfo -notin (Get-WinUserLanguageList | % {$_.LanguageTag})) {
Write-Error "Language pack for $CultureInfo is not installed."
return
}
[System.Reflection.Assembly]::Load('System.Management.Automation').GetType('Microsoft.PowerShell.NativeCultureResolver').GetField('m_Culture', 'NonPublic, Static').SetValue($null, $CultureInfo)
[System.Reflection.Assembly]::Load('System.Management.Automation').GetType('Microsoft.PowerShell.NativeCultureResolver').GetField('m_uiCulture', 'NonPublic, Static').SetValue($null, $CultureInfo)
}
It is actually a merge of the already linked answer and mkelement0's comment.
Example usage:
PS C:\> Get-Culture
LCID Name DisplayName
---- ---- -----------
1033 en-US English (United States)
PS C:\> Get-UICulture
LCID Name DisplayName
---- ---- -----------
1033 en-US English (United States)
PS C:\> Set-PowerShellLanguage 'es-AR'
PS C:\> Get-Culture
LCID Name DisplayName
---- ---- -----------
11274 es-AR Spanish (Argentina)
PS C:\> Get-UICulture
LCID Name DisplayName
---- ---- -----------
11274 es-AR Spanish (Argentina)
PS C:\>