# http://goo.gl/Zq9sOL # http://goo.gl/bv6JGT [void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") function TranslitRU2LAT{ param([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]'ё' = "ye";[char]'Ё' = "Ye"; [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]'х' = "kh";[char]'Х' = "Kh"; [char]'ц' = "ts";[char]'Ц' = "Ts"; [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" } $outChars = "" $Result.Text = "" $inString = $InputName.Text +"."+ $InputSName.Text foreach ($c in $inChars = $inString.ToCharArray()) { if ($Translit[$c] -cne $Null ) {$outChars += $Translit[$c]} else {$outChars += $c} } $Result.Text = $outChars } # # function SplitFName{ $inStr = $InputFName.Text -split " " $InputSName.Text = $inStr[0] $InputName.Text = $inStr[1] $InputInitName.Text = $inStr[2] TranslitRU2LAT } # function SetToClipboard{ param($cltext) if($cltext){ [Windows.Forms.Clipboard]::SetText($cltext); $Form.close() } } # # Форма GUI # $labFName = New-Object windows.Forms.Label $labFName.text = "Фамилия Имя Отчество полностью:" $labFName.left = "8" $labFName.top = "10" $labFName.Width = "300" $labSName = New-Object windows.Forms.Label $labSName.text = "Фамилия:" $labSName.left = "8" $labSName.top = "65" $labSName.Width = "80" $labName = New-Object windows.Forms.Label $labName.text = "Имя:" $labName.left = "113" $labName.top = "65" $labName.Width = "80" $labInitName = New-Object windows.Forms.Label $labInitName.text = "Отчество:" $labInitName.left = "218" $labInitName.top = "65" $labInitName.Width = "80" $InputFName = New-Object windows.Forms.TextBox $InputFName.Left ="10" $InputFName.Top = "34" $InputFName.Width = "310" $InputFName.add_TextChanged($Function:SplitFName) $InputSName = New-Object windows.Forms.TextBox $InputSName.Left ="10" $InputSName.Top = "88" $InputName = New-Object windows.Forms.TextBox $InputName.Left ="115" $InputName.Top = "88" $InputInitName = New-Object windows.Forms.TextBox $InputInitName.Left ="220" $InputInitName.Top = "88" $button1 = New-Object Windows.Forms.Button $button1.Text="Транслитерация : Загранпаспорт (1997—2010)" $button1.Left ="10" $button1.Top = "120" $button1.Width = "310" $button1.add_click($Function:TranslitRU2LAT) $Result = New-Object windows.Forms.TextBox $Result.Left= "10" $Result.Top="154" $Result.Width = "200" $Result.Height = "200" $Result.ReadOnly = "true" $Result.Text = "" $button2 = New-Object Windows.Forms.Button $button2.Text = "В буфер обмена" $button2.Left ="212" $button2.Top = "153" $button2.Width = "108" $button2.Height = "22" $button2.add_click({SetToClipboard $Result.Text}) $Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($PSHOME + "\powershell.exe") $Form = New-Object Windows.Forms.Form $Form.Height = 220 $Form.Width = 350 $Form.Text = "Транслит ФИО для Email" $Form.Icon = $Icon $Form.AutoSize = $True $Form.AutoSizeMode = "GrowOnly" #$Form.StartPosition = "CenterScreen" $Form.controls.add($labFName) $Form.controls.add($labName) $Form.controls.add($labInitName) $Form.controls.add($labSName) $Form.controls.add($inputFName) $Form.controls.add($inputSName) $Form.controls.add($inputName) $Form.controls.add($inputInitName) $Form.controls.add($button1) $Form.controls.add($button2) $Form.controls.add($Result) $Form.Add_Shown({$Form.Activate()}) $Form.ShowDialog()