Get-Translit.psm1

#test push to master one file commit

<#
    .Synopsis
    Transliterate russian words to latin
    .example
    Get-Translit Иванов Иван Иванович
    ivanov ivan ivanovich
    .Example
    Get-Translit съешь же ещё этих мягких французских булок, да выпей чаю
    sesh zhe eschyo etih myagkih francuzskih bulok da vypey chayu
#>

function Get-Translit {
    param(
        [Parameter(ValueFromRemainingArguments=$true,Mandatory=$true)]
        [string]$inString
    )
    $Translit = @{
        [char]'а' = "a"
        [char]'А' = "a"
        [char]'б' = "b"
        [char]'Б' = "b"
        [char]'в' = "v"
        [char]'В' = "v"
        [char]'г' = "g"
        [char]'Г' = "g"
        [char]'д' = "d"
        [char]'Д' = "d"
        [char]'е' = "e"
        [char]'Е' = "e"
        [char]'ё' = "yo"
        [char]'Ё' = "yo"
        [char]'ж' = "zh"
        [char]'Ж' = "zh"
        [char]'з' = "z"
        [char]'З' = "z"
        [char]'и' = "i"
        [char]'И' = "i"
        [char]'й' = "y"
        [char]'Й' = "y"
        [char]'к' = "k"
        [char]'К' = "k"
        [char]'л' = "l"
        [char]'Л' = "l"
        [char]'м' = "m"
        [char]'М' = "m"
        [char]'н' = "n"
        [char]'Н' = "n"
        [char]'о' = "o"
        [char]'О' = "o"
        [char]'п' = "p"
        [char]'П' = "p"
        [char]'р' = "r"
        [char]'Р' = "r"
        [char]'с' = "s"
        [char]'С' = "s"
        [char]'т' = "t"
        [char]'Т' = "t"
        [char]'у' = "u"
        [char]'У' = "u"
        [char]'ф' = "f"
        [char]'Ф' = "f"
        [char]'х' = "h"
        [char]'Х' = "h"
        [char]'ц' = "c"
        [char]'Ц' = "c"
        [char]'ч' = "ch"
        [char]'Ч' = "ch"
        [char]'ш' = "sh"
        [char]'Ш' = "sh"
        [char]'щ' = "sch"
        [char]'Щ' = "sch"
        [char]'ъ' = ""
        [char]'Ъ' = ""
        [char]'ы' = "y"
        [char]'Ы' = "y"
        [char]'ь' = ""
        [char]'Ь' = ""
        [char]'э' = "e"
        [char]'Э' = "e"
        [char]'ю' = "yu"
        [char]'Ю' = "yu"
        [char]'я' = "ya"
        [char]'Я' = "ya"
    }
    $outCHR = ""
    foreach ($CHR in $inCHR = $inString.ToCharArray()) {
        if ($Null -cne $Translit[$CHR] ){
            $outCHR += $Translit[$CHR]
        }
        else{
            $outCHR += $CHR
        }
    }
    Write-Output $outCHR
}

#Export-ModuleMember -Function Get-Translit

<#function ConvertTo-Encoding ([string]$From, [string]$To){
    
<#
function ConvertTo-Encoding ([string]$From, [string]$To){

    Begin{
        $encFrom = [System.Text.Encoding]::GetEncoding($from)
        $encTo = [System.Text.Encoding]::GetEncoding($to)
    }
    Process{
        $bytes = $encTo.GetBytes($_)
        $bytes = [System.Text.Encoding]::Convert($encFrom, $encTo, $bytes)
        $encTo.GetString($bytes)
    }
}

$args[0].ToString() | ConvertTo-Encoding($OutputEncoding.HeaderName,"windows-1251") | Get-Translit($_)
#>