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.
▪ When the only tool you know how to use is a hammer every problem begins to look like a nail
▪ "Gladni stolećima, kupujemo više hleba nego što nam je potrebno. A, onda ga bacamo. Hleb u đubretu nije dobar prizor. On sluti na zlo. I zlo dolazi" - Momo Kapor
▪ "Opportunity is missed by most because it is dressed in overalls and looks like work" - Thomas Edison