PDA

Показать полную графическую версию : Преобразование кириллицы в латиницу


Yarr70
13-09-2014, 08:01
Подскажите функцию для преобразования строки из кириллицы в латиницу

madmasles
13-09-2014, 11:21
Транслит или?

Iska
13-09-2014, 11:21
Нет такой функции. Поясните, что Вы имеете в виду, говоря об «из кириллицы в латиницу». Нечто наподобие того, что делает Punto Switcher — исправление текста, набранного в неверной раскладке? Или транслитерацию, как спросил коллега madmasles выше?

Yarr70
13-09-2014, 12:10
нужен именно транслит

Iska
13-09-2014, 12:39
Что из рекомендуемого Google'ом: autoit транслит - Поиск в Google (https://www.google.ru/search?q=autoit+%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D0%B8%D1%82) не подошло для Ваших целей?

Yarr70
13-09-2014, 12:54
я очень надеялся есть готовая и удобная функция

Iska
13-09-2014, 14:09
Есть практически готовые. Можно просто взять любую и преобразовать в самое простое, например:
AutoItSetOption("MustDeclareVars", 1)

ConsoleWrite(Transliteration("Мама мыла раму") & @CRLF)
ConsoleWrite(Transliteration("Рабы не мы, мы не рабы!") & @CRLF)

Exit(0)
;=============================================================================

;=============================================================================
Func Transliteration($sString)
Static Local $oTranslit = ObjCreate("Scripting.Dictionary")

With $oTranslit
If .Count = 0 Then
.Add("А", "A")
.Add("Б", "B")
.Add("В", "V")
.Add("Г", "G")
.Add("Д", "D")
.Add("Е", "E")
.Add("Ё", "YO")
.Add("Ж", "ZH")
.Add("З", "Z")
.Add("И", "I")
.Add("Й", "Y'")
.Add("К", "K")
.Add("Л", "L")
.Add("М", "M")
.Add("Н", "N")
.Add("О", "O")
.Add("П", "P")
.Add("Р", "R")
.Add("С", "S")
.Add("Т", "T")
.Add("У", "U")
.Add("Ф", "F")
.Add("Х", "KH")
.Add("Ц", "TC")
.Add("Ч", "CH")
.Add("Ш", "SH")
.Add("Щ", "SHC")
.Add("Ъ", "'")
.Add("Ы", "Y")
.Add("Ь", "'")
.Add("Э", "E'")
.Add("Ю", "YU")
.Add("Я", "YA")

.Add("а", "a")
.Add("б", "b")
.Add("в", "v")
.Add("г", "g")
.Add("д", "d")
.Add("е", "e")
.Add("ё", "yo")
.Add("ж", "zh")
.Add("з", "z")
.Add("и", "i")
.Add("й", "y'")
.Add("к", "k")
.Add("л", "l")
.Add("м", "m")
.Add("н", "n")
.Add("о", "o")
.Add("п", "p")
.Add("р", "r")
.Add("с", "s")
.Add("т", "t")
.Add("у", "u")
.Add("ф", "f")
.Add("х", "kh")
.Add("ц", "tc")
.Add("ч", "ch")
.Add("ш", "sh")
.Add("щ", "shc")
.Add("ъ", "'")
.Add("ы", "y")
.Add("ь", "'")
.Add("э", "e'")
.Add("ю", "yu")
.Add("я", "ya")
EndIf
EndWith

For $sKey In $oTranslit
$sString = StringReplace($sString, $sKey, $oTranslit($sKey))
Next

Return $sString
EndFunc
;=============================================================================




© OSzone.net 2001-2012