# List of resource folders $input_resource_folder_list = @("src\settings-ui\Microsoft.PowerToys.Settings.UI\Strings\") $output_resource_folder_list = @("src\settings-ui\Microsoft.PowerToys.Settings.UI\Strings\") # Hash table to get the folder language code from the code used in the file name $languageHashTable = @{ "en" = "en-us"; "cs" = "cs-cz"; "de" = "de-de"; "es" = "es-es"; "fr" = "fr-fr"; "hu" = "hu-hu"; "it" = "it-it"; "ja" = "ja-jp"; "ko" = "ko-kr"; "nl" = "nl-nl"; "pl" = "pl-pl"; "pt-BR" = "pt-br"; "pt-PT" = "pt-pt"; "ru" = "ru-ru"; "sv" = "sv-se"; "tr" = "tr-tr"; "zh-Hans" = "zh-cn"; "zh-Hant" = "zh-tw" } # Iterate over all folders for ($i=0; $i -lt $input_resource_folder_list.length; $i++) { Get-ChildItem $input_resource_folder_list[$i] -Filter Resources.*.resw | Foreach-Object { # Get language code from file name $lang = "en" $tokens = $_.Name -split "\." if ($tokens.Count -eq 3) { $lang = $tokens[1] } $langPath = $languageHashTable[$lang] # Skip for en-us as it already exists in correct folder if ($lang -eq "en") { continue } # Create language folder if it doesn't exist $output_path = $output_resource_folder_list[$i] + $langPath if (!(Test-Path -Path $output_path)) { $paramNewItem = @{ Path = $output_path ItemType = 'Directory' Force = $true } New-Item @paramNewItem } # UWP projects expect the file to be in the path Strings\langCode\Resources.resw where langCode is the hyphenated language code $input_file = $input_resource_folder_list[$i] + $_.Name $output_file = $output_path + "\" + "Resources.resw" Move-Item -Path $input_file -Destination $output_file } }