DataVoyage |
ćirilična verzija latinična verzija |
C2L PHP biblioteka za preslovljavanje |
|
NapomenaOvo je napušten projekat, ne zato što je loš nego zato što smo razvijajući ga, naučili štošta, i smislili mnogo naprednijih mehanizama koje smo realizovali kroz novu biblioteku (Universal Language Tool for PHP), koja ima svu funkcionalnost kao ova biblioteka i značajna proširenja. Ova biblioteka ostaje dostupna iz istorijskih razloga. UvodSticajem istorijskih okolnosti srpski jezik je kao tekovinu stekao vrlo retku i vrednu mogućnost korišćenja dva pisma, izvornog ćiriličnog i u svetu daleko rasprostranijeg latiničnog. Primena ćirilice na računarima vrlo dugo je bilo znatno ograničena pre svega iz tehničkih razloga. Ćirilično pismo je na računarima dugo korišćeno praktično samo u oblasti pripreme za štampu a i tada uz dosta problema i komplikacija. No, tu je krajnji cilj bilo odštampati knjigu ili novinu u tu se primena ćirilice završavala. Korišćenje ćirilice u svakodnevnom radu na računaru pa čak i za prepisku bilo je otežano. U poslednje vreme razvijene su tehnologije koje su omogućile mnogo lakše (mada i dalje često nepraktično) korišćenje raznih pisama pa i srpske ćirilice na računarima. Danas već imamo ćirilične verzije i Windows i Linux operativnih sistema i u nekoj meri ćirilica se može koristiti i za svakodnevne poslove. U poslednje vreme pojavio se i određeni broj internet prezentacija u ćiriličnom obliku, ali to je još uvek prilično retka pojava. Osnovni razlozi su nepraktični alati za razvoj ćiriličnih prezentacija ali i struktura posetilaca prezentacija kojima je često prihvatljivije latinično pismo. Izrada prezentacija na dva pisma je prilično komplikovana stvar, naročito ako je potrebno sadržaj često zanavljati. Izvođači prezentacija su najčešće primorani da naprave izbor između latinice i ćirilice i u tom izboru po pravilu pobeđuje latinica kao univerzalnije pismo. Kako je naša delatnost upravo izrada internet prezentacija, stalno smo suočeni sa ovim problemom. S jedne strane želimo da svojim klijentima radimo ćirilične prezentacije a sa druge strane, neophodno je da prezentacije postoje i u latiničnom pismu a primena oba pisma bi značajno poskupelo njihovo održavanje. Zbog toga smo razvili PHP biblioteku koja nam taj posao pojednostavljuje. Naravno, pogledavši izvorni kod videćete da nismo otkrili ništa novo i da je ovo što smo napravili vrlo jednostavno. Stvar je u tome što do sada nismo videli da je neko drugi to uradio i dao na javnu upotrebu. Evo, sada i to ima. Biblioteka je javno dostupna i besplatna za korišćenje. |
|
Osnovni principiRadi se o jednostavnoj jednoznačnoj zameni niza znakova drugim. Web strana mora da bude urađena u Unicode-u (UTF-8), napisana ćiriličnim pismom i sa nastavkom php kako bi je server tretirao kao PHP skriptu. Biblioteka se jednostavno uvršćava kao spoljni PHP skript i automatski vrši preslovljavanje ćiriličnog teksta u latinični. S obzirom da je strana u UTF-8 formatu, ona može sadržati mešavinu raznih pisama. Preslovljavanje će biti izvršeno samo za ćirilična slova i izraze. Da bi ova biblioteka radila, web strana se mora nalaziti na serveru koji podržava PHP. Nije potrebna nikakva baza ili spoljna biblioteka. C2L je potrebno uvrstiti (include) u stranu na samom početku strane. Potrebno je koristiti funkcije za kontrolu izlaznog bafera kako bi se izvršilo preslovljavanje i to na sledeći način:
Ovakva strana izvršena na serveru prikazeće umesto ćiriličnog teksta latinicu bez ikakve dodatne intervencije sa vaše strane. |
||
Kako stvar radiSama biblioteka se nalazi u datoteci c2l.php. U njoj ćete naći osnovnu definiciju tabele za preslovljavanje $c2l_conv_table koja u obliku niza sadrži tabelu preslovljavanja slova ali i nekih celih izraza kao što su parovi "Microsoft" => "Microsoft", "FoxPro" => "FoxPro", "Oracle" => "Oracle", "Windows" => "Windows", "Linux" => "Linux". Nemojte menjati ovu tabelu jer će Vam to praviti probleme kada budete preuzimali noviju verziju biblioteke. Ova tabela će sadržavati samo tabelu preslovljavanja slova i nekih opštih izraza koje budemo dodavali vremenom. Vi imate mogućnost da napravite jednu ili više svojih tabela za preslovljavanje koje možete dodate na ovu definiciju. Osnovna funkcija za konverziju je c2l_convertor(). Ona kao ulazni parametar prihvata string koji sadrži tekst koji treba presloviti a kao rezultat funkcije vraća preslovljen tekst. Preslovljavanje se vrši prema definiciji u $c2l_conv_table. Proširivanje definicija za preslovljanje se vrši funkcijom c2l_expand_table(). Nemojte nikako direktno menjati sadržaj $c2l_conv_table već uvek i isključivo proširujte definiciju preko ove funkcije. Napravite niz koji ima istu strukturu kao $c2l_conv_table i pozovite funkciju c2l_expand_table() kojoj ćete proslediti svoj niz kao parametar. Ona će uraditi sve ostalo. Kako se to radi možete videti i u gornjem primeru. Na ovaj način, ne morate menjati kod same biblioteke da bi ste proširili definicije za preslovljavanje. Ovo će vam trebati retko, kada imate neki izraz koji ne treba bukvalno presloviti na latinicu nego u nekom drugom obliku, slično kao što su malo ranije navedeni primeri. Kao dobar primer pogledajte i izvorni kod ovog dokumenta koji čitate jer on koristi biblioteku c2l za preslovljavanje. Tu ćete videti i kako možete na osnovu parametar da prikazujete izvonu ćiriličnu stranu ili preslovljenu latiničnu, što je ste osnovna namena ove biblioteke. Biblioteku nismo komplikovali nekim dodatnim tehnikama koje bi u velikoj meri pojednostavile njeno korišćenje za početnike ali bi zato bilo komplikovano koristiti je u razrađenim prezentacijama koje sadrže dosta koda i verovatno gotove mehanizme za upravljanje baferom izlaza i parametrima. Pretpostavka je, da ako Vam je ovo potrebno, imate nekog iskustva i lako ćete se snaći sa ovom jednostavnom bibliotekom. Primeri koje smo dali bi trebali da su Vam dovoljni da utvrdite kako se ova biblioteka koristi tako da možete da je primenite na svojoj prezentaciji koristeći sopstvene već razrađene mehanizme, a praktično sve što treba da uradite je da uključite biblioteku u svoj kod, i da pre ispisa bafera po potrebi izvršite preslovljavanje. Kako ćete utvrđivati da li je preslovljavanje potrebno zavisi od vaše prezentacije. Naša preporuka je da u sesiji čuvate informaciju da li je preslovljavanje potrebno a da obavezno korisniku ostavite mogućnost da ga uključuje i isključuje po potrebi. |
Biblioteku sa ovim uputstvom i primerom možete preuzeti odavde. Korišćenje bibloteke je besplatno. Nadamo se da će ova biblioteka pomoći da se lakše odlučite da radite ćirilične verzije svojih prezentacija. Za podršku posetite forum Oreska, a preporučujemo da umesto ove biblioteke koristite Universal Language Tool for PHP, kao mnogo praktičnije i bolje rešenje. |
| ©2004 Copyright by DataVoyage |