Invoke-StringNormalization.psm1

function Invoke-StringNormalization {
    param (
        [Parameter(Mandatory = $true)]
        [string]$InputString, 
        [Parameter(Mandatory = $false)]
        [ValidateSet('Germany', 'Scandinavia')]
        [string]$Locality = 'Germany'
    )

    switch ($Locality) {
        'Germany' {
            $OutputString = $InputString.Replace('Ö', 'Oe').Replace('Ä', 'Ae').Replace('Ü', 'Ue').Replace('ö', 'oe').Replace('ä', 'ae').Replace('ü', 'ue')
        }
        'Scandinavia' {
            $OutputString = $InputString.Replace('Ö', 'O').Replace('Ä', 'A').Replace('Ü', 'U').Replace('ö', 'o').Replace('ä', 'a').Replace('ü', 'u')
        }
    }
    $OutputString = $OutputString.Replace(' ', ' ').Replace('ß', 'ss').Replace('Å', 'A').Replace('Ø', 'O').Replace('å', 'a').Replace('ø', 'o').Trim()

    return $OutputString
}