tb=av.getactiveDOC
if (tb.getclass.getclassname<>"table") then MSGBOX.INFO("no active table selected","translytor") EXIT end
tv=tb.getVtab
tv.seteditable(true)
LF=tv.getFields
for each I in 0..(LF.Count-1)
if (LF.get(I).GetType=#FIELD_CHAR) then
for each R in 0..(tv.getNumrecords-1)
ST=tv.returnValue(LF.get(I),R)
ST.LCase
for each N in 0..(ST.Count-1)
if (ST.Middle(N,4)="shch") then ST1=ST.Left(N)+"ù"+ST.right(ST.Count-(N+2)) ST=ST1 end
if (ST.Middle(N,2)="zh") then ST1=ST.Left(N)+"æ"+ST.right(ST.Count-(N+2)) ST=ST1 end
if (ST.Middle(N,2)="ch") then ST1=ST.Left(N)+"÷"+ST.right(ST.Count-(N+2)) ST=ST1 end
if (ST.Middle(N,2)="sh") then ST1=ST.Left(N)+"ø"+ST.right(ST.Count-(N+2)) ST=ST1 end
if (ST.Middle(N,2)="e'") then ST1=ST.Left(N)+"ý"+ST.right(ST.Count-(N+2)) ST=ST1 end
if (ST.Middle(N,2)="yu") then ST1=ST.Left(N)+"þ"+ST.right(ST.Count-(N+2)) ST=ST1 end
if (ST.Middle(N,2)="ya") then ST1=ST.Left(N)+223.AsChar+ST.right(ST.Count-(N+2)) ST1.Lcase ST1.Proper ST=ST1 end
end'N
ST=ST.Translate("a","à")
ST=ST.Translate("b","á")
ST=ST.Translate("v","â")
ST=ST.Translate("g","ã")
ST=ST.Translate("d","ä")
ST=ST.Translate("e","å")
ST=ST.Translate("z","ç")
ST=ST.Translate("i","è")
ST=ST.Translate("j","é")
ST=ST.Translate("k","ê")
ST=ST.Translate("l","ë")
ST=ST.Translate("m","ì")
ST=ST.Translate("n","í")
ST=ST.Translate("o","î")
ST=ST.Translate("p","ï")
ST=ST.Translate("r","ð")
ST=ST.Translate("s","ñ")
ST=ST.Translate("t","ò")
ST=ST.Translate("u","ó")
ST=ST.Translate("f","ô")
ST=ST.Translate("h","õ")
ST=ST.Translate("c","ö")
ST=ST.Translate("`","ü")
ST=ST.Translate("y","û")
ST=ST.Translate("""".Middle(0,1),"ú")
'.Quote
tv.setValue(LF.get(I),R,ST)
end'R
end'if
end'I
tv.seteditable(false)
всетаки лучше проверять правильность перевода, и одна мелоч незнаю как у тебя, но у меня почемуто черех Avenu маленькая буква "я" не пишется только большая, так что если че то вручную исправлять придется, самое интерестное что в ручную то пишется. (в 18-й строке 255 = "я" 223="Я")