@@ -31,10 +31,13 @@ param (
31
31
[System.String ] $Helplink = " https://stealthpuppy.com/image-customise/" ,
32
32
33
33
[Parameter (Mandatory = $False )]
34
- [System.String []] $Properties = @ (" General" , " Registry" , " Paths" , " StartMenu" , " Features" , " Capabilities" , " Packages" , " AppX" ),
34
+ [System.String []] $Properties = @ (" General" , " Registry" , " Paths" , " StartMenu" , " Features" , " Capabilities" , " Packages" , " AppX" , " Language " ),
35
35
36
36
[Parameter (Mandatory = $False )]
37
- [System.String ] $AppxMode = " Block"
37
+ [System.String ] $AppxMode = " Block" ,
38
+
39
+ [Parameter (Mandatory = $False )]
40
+ [System.String ] $Language = " en-AU"
38
41
)
39
42
40
43
# region Restart if running in a 32-bit session
@@ -60,7 +63,7 @@ if (!([System.Environment]::Is64BitProcess)) {
60
63
# region Functions
61
64
function New-ScriptEventLog ($EventLog , $Property ) {
62
65
$params = @ {
63
- LogName = " Customised Defaults "
66
+ LogName = $EventLog
64
67
Source = $Property
65
68
ErrorAction = " SilentlyContinue"
66
69
}
@@ -619,7 +622,6 @@ try {
619
622
}
620
623
# endregion
621
624
622
-
623
625
# If on a client OS, run the script to remove AppX; UWP apps
624
626
if ($Platform -eq " Client" ) {
625
627
@@ -639,6 +641,41 @@ try {
639
641
$Object = ([PSCustomObject ]@ {Name = " Remove-AppxApps.ps1" ; Value = $RemovedApps.Name ; Result = 0 })
640
642
Write-ToEventLog - Property " AppX" - Object $Object
641
643
}
644
+
645
+ # Set language support
646
+ if ($Language -eq " Skip" ) {
647
+ Write-Verbose - Message " Skip install language support."
648
+ Write-ToEventLog - Property " Language" - Object ([PSCustomObject ]@ {Name = " Install language" ; Value = " Skipped" ; Result = 0 })
649
+ }
650
+ else {
651
+ try {
652
+ $params = @ {
653
+ Language = $Language
654
+ CopyToSettings = $True
655
+ ExcludeFeatures = $False
656
+ }
657
+ Write-Verbose - Message " Install language: $Language ."
658
+ $Msg = " Success" ; $Result = 0
659
+ Install-Language @params | Out-Null
660
+ }
661
+ catch {
662
+ $Msg = $_.Exception.Message ; $Result = 1
663
+ }
664
+ Write-ToEventLog - Property " Language" - Object ([PSCustomObject ]@ {Name = " Install language: $Language " ; Value = $Msg ; Result = $Result })
665
+ try {
666
+ $params = @ {
667
+ Language = $Language
668
+ PassThru = $False
669
+ }
670
+ Write-Verbose - Message " Set system language: $Language ."
671
+ $Msg = " Success" ; $Result = 0
672
+ Set-SystemPreferredUILanguage @params
673
+ }
674
+ catch {
675
+ $Msg = $_.Exception.Message ; $Result = 1
676
+ }
677
+ Write-ToEventLog - Property " Language" - Object ([PSCustomObject ]@ {Name = " Set system language: $Language " ; Value = $Msg ; Result = $Result })
678
+ }
642
679
}
643
680
}
644
681
catch {
0 commit comments