А я это и не вам, это я angvelem хотел сказать.
Кстати, предложенный мною код несколько сыроват. Там надо пополнить табличку буквами 'x','х' и предусмотреть большие маленькие буквы, т.к. если строчные 'в' и 'b' различаются по начертанию, то вот прописные 'В' и 'B' уже нет. Тоже самое с 't','k','m'
В общем вот такой код вроде должен работать:
Код:
Const
Similar: record Rus,Lat: String[10]; end = (Rus:'аоерсхТВНКМ';Lat:'aoepcxTBHKM');
function TransLat(S: String): String;
Var i: Integer;
begin
for i := 1 to 10
do S := StringReplace(S, Similar.Lat[i], Similar.Rus[i],[rfReplaceAll]);
Result := S;
end;