Published on InterSystems Developer Community (https://community.intersystems.com)

Home > Convert Cyrillic to Latin

Article
Sabit Issakhan · Aug 29, 2019 3m read

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

}
#Beginner #Code Snippet #ObjectScript #Tips & Tricks #Caché #InterSystems IRIS

Source URL:https://community.intersystems.com/post/convert-cyrillic-latin