Function Transcript_Russian2LatinChars(aString:String):String;
Type
TStringArray = array of String;
var
R,L: TStringArray;
I:Integer;
begin
//Russian Chars
R:=TStringArray.Create('А','Б','В','Г','Д','Е','Ё','Ж','З','И','І','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ч','Ш','Щ','Ъ','Ы','Ь','Э', //Capitals
'а','б','в','г','д','е','ё','ж','з','и','і','й','к','л','м','н','о','п','р','с','т','у','ф','х','ч','ш','щ','ъ','ы','ь','э'); //Small letters
//Latin Chars/Strings
L:=TStringArray.Create('A','B','V','G','D','E','E','Zh','Z','I','I','I','K','L','M','N','O','P','R','S','T','U','F','Kh','Ch','Sh','Shch','ʺ','Y','ʹ','E', //Capitals
'a','b','v','g','d','e','e','zh','z','i','i','i','k','l','m','n','o','p','r','s','t','u','f','kh','ch','sh','shch','ʺ','y','ʹ','e'); //Small letters
for I := 1 to Length(R) do
begin
aString := stringreplace(aString, R[i-1], L[i-1], [rfReplaceAll]);
end;
Result := aString;
end;