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.
▪ "Why isn't my wireless mouse connected to the computer?" - 2008 Dumbest Technical Support Question
▪ The word 'politics' is derived from the word 'poly', meaning 'many', and the word 'ticks', meaning 'blood sucking parasites' - Hardiman
▪ If the good guy gets the girl, it's rated PG; if the bad guy gets the girl, it's rated R; and if everybody gets the girl, it's rated X