Convert Cyrillic to Latin
Hello everyone!
Recently I search how to convert Cyrillic to Latin with Cache Object Script, but didn't find anything and decided to write ourselves,
So here code:
//Create Class method
ClassMethod convertRussionToEnglish(word As %String)
{
//add array of transliteration system
Set convertArray = $LB(
$LB("а","a"),$LB("б","b"),$LB("в","v"),$LB("г","g"),$LB("д","d"),$LB("е","e"),$LB("ё","e"),$LB("ж","zh"),$LB("з","z"),
$LB("и","i"),$LB("й","y"),$LB("к","k"),$LB("л","l"),$LB("м","m"),$LB("н","n"),$LB("о","o"),$LB("п","p"),
$LB("р","r"),$LB("с","s"),$LB("т","t"),$LB("у","u"),$LB("ф","f"),$LB("х","kh"),$LB("ц","ts"),$LB("ч","ch"),
$LB("ш","sh"),$LB("щ","shch"),$LB("ы","y"),$LB("э","e"),$LB("ю","yu"),$LB("я","ya"),$LB("ъ",""),$LB("ь",""),
$LB("А","A"),$LB("Б","B"),$LB("В","V"),$LB("Г","G"),$LB("Д","D"),$LB("Е","E"),$LB("Ё","E"),$LB("Ж","ZH"),$LB("З","Z"),
$LB("И","I"),$LB("Й","Y"),$LB("К","K"),$LB("Л","L"),$LB("М","M"),$LB("Н","N"),$LB("О","O"),$LB("П","P"),
$LB("Р","R"),$LB("С","S"),$LB("Т","T"),$LB("У","U"),$LB("Ф","F"),$LB("Х","KH"),$LB("Ц","TS"),$LB("Ч","CH"),
$LB("Ш","SH"),$LB("Щ","SHCH"),$LB("Ы","Y"),$LB("Э","E"),$LB("Ю","YU"),$LB("Я","YA"),$LB("Ъ",""),$LB("Ь","")
)
//word Example
Set wordToConvert = "Пример для Кода"
Set wordToConvertLength = $L(wordToConvert)
Set cnt=$ListLength(convertArray)
Set latinWord = ""
//and with cycle get each letter and parse in transliteration array
for i=1:1:wordToConvertLength {
Set cyrillicWord = $E(wordToConvert,i)
for j=1:1:cnt {
Set codes=$ListGet(convertArray,j)
Set cyrillicLetter=$ListGet(codes,1)
Set latinLetter=$ListGet(codes,2)
if cyrillicLetter=cyrillicWord {
Set cyrillicWord = latinLetter
}
}
Set latinWord = latinWord_cyrillicWord
}
//Get result of convert
Quit latinWord
}