Ok, ako hoces sa minimumom maltertiranja i ako znas da taj sajt nikad nece imati nista sem nase cirilice i latinice mozes da uradis sledece:
1. Ukljuci bufering strane (da ti sadrzaj ne bi odmah otisao klijentu)
2. Stranicu generisi po defaultu kao cirilicnu
2. Implementiraj PostRender event na Page-u, izvuci sadrzaj strane iz stream-a i preslovi ga ako je potrebno. Ako stranicu inicijalno generises kao cirilicnu neces imati problema jer se svi HTTP/HTML renderuju kao Latin pa ih preslovljavanje iz cirilice u latinicu nece dirati. Preslovljeno vrati nazad u stream (prvo ga resetuj). PS: Obrati paznju na encoding stranice, stream ja najverovatnije binary, encodovan u kod stranice (po defaultu UTF8 ), moraces da dekodiras taj stream u string i da posle da ga kodiras nazad u taj encoding.
Sto se tice samog preslovljavanja mozes slobodno da koristis
new Dictionary<char, string>(30) (mora string kao value zbog dvoslovnih kombinacija u latinici lj, nj, itd). posto Dictionary koristi HashTable, a hash od Char je (int)c hashiranje je brzo, a posto nemas duplikata niti kolizije kljuceva (zato mora da se inicijalizuje na 30) indeksiranje dictionary-a je direktno i imaces dobr performanse. Za samo preslovljavanje ne koristi string. Operacije na stringovima su immutable tj svaka pojedinacna operacija generise potpuno novi string u CELOSTI. Umesto toga ucitaj string u StringBuilder i kroz njega radi replace za svaki element dictionary-a i na kraju izvuci string, garantovano od tih 1400ms bar 90% odlazi na alkaciju/dealokaciju i kopiranje stringova sto se resava stringbuilderom. To bi trebalo da ti da najoptimalnije rezultate sa najmanje zezanja.
▪ The quicker a phone is answered in sales, the slower it's answered in customer services - Brownridge's Law
▪ Democracy is a device that ensures we shall be governed no better than we deserve - George Bernard Shaw
▪ To err is human--and to blame it on a computer is even more so - Robert Orben