[ flighter_022 @ 11.02.2006. 22:39 ] @
| Radim jedan komercijalni sajt, pa se pitam, kako ste resavali to da sajt moze da radi na 2 ili vise jezika. Recimo da se radi o nekoj vrsti shoping-sajta.
Aplikacije za lokalne racunare ili za lokalne mreze radim vec dosta dugo u Visual basicu u kombinaciji sa MS SQL. Taj problem sa vise jezika sam resio tako sto sam, kada je program gotov, dodao na pocetak svake forme da se svaki tekstualni element, i po potrebi graficki, ucitava iz baze. Svaki element ima svoj red u tabeli, a kolone predstavljaju jezike. Postoji globalna promenjiva koja nosi podatak o tekuce izabranom jeziku, a forma samo poziva zadati red za svaku kontrolu na formi. Kasnije se u samoj formi apsolutno nista ne menja, vec se samo u delu programa za to namenjenom promeni aktivni jezik i resena stvar. Ovo bi, istina, moglo da se radi i preko resursa, ali ovako kako sam ja uradio, moze i korisnik da dodaje prevode. jedino treba da se vodi racuna da ni jedan element (tekst) ne bude predugacak pa da poremeti izgled forme, ili da ne bude ispisan u celosti.
Ne vidim zasto istaq stvar ne bi mogla da se uradi i u kombinaciji PHP/MySQL, medjutim ovde iskusnije kolege mozda imaju i bolja resenja.
Sta vi mislite? |
[ SmilieBG @ 11.02.2006. 23:15 ] @
Cao,
jedno od cesto koriscenih resenja su php fajlovi u kojima se nalaze define() funkcije koje definisu reci, na primer (ovo je iz CMS-a e107):
*/
define("e_PAGETITLE", "Forum");
define("LAN_30", "Welcome");
define("LAN_31", "There are no new posts ");
define("LAN_32", "There is 1 new post ");
define("LAN_33", "There are");
define("LAN_34", "new posts");
define("LAN_35", "since your last visit.");
define("LAN_36", "You last visited at ");
define("LAN_37", "It is now ");
define("LAN_38", ", all times are ");
a za srpski sam samo dodao jos jedan fajl, koji sam drugacije nazvao i u njemu preveo ovo gore:
define("e_PAGETITLE", "Forum");
define("LAN_30", "Dobrodosli");
define("LAN_31", "Nema novih postova ");
define("LAN_32", "Postoji 1 novi post ");
define("LAN_33", "Ima");
define("LAN_34", "novih postova");
define("LAN_35", "od vase poslednje posete.");
define("LAN_36", "Vasa poslednja poseta je bila ");
define("LAN_37", "Sada je ");
define("LAN_38", ", sva prikazana vremena su ");
Na ovaj nacin, u php stranici (template) samo pozivas predefinisane LAN_xx brojeve, koji menjaju jezik. Naravno, u sessiji ili cookiju sacuvas izbor jezika posetioca...
Sa ovim smanjujes (bitno) broj poziva mysql bazi, te imas bolji performance...
Poz,
Sale
[ flighter_022 @ 12.02.2006. 17:55 ] @
Sve je to lepo, ali to sve mora da se pripremi pre distribucije paketa. Ideja je da sve moze da se "prevodi" i kasnije, kada je sajt vec postavljen i radi, ne vidim neki poseban razlog da se sve ne stavi u bazu i iz baze poziva (da se doda jos jedan ili vise jezika).
A i ne vidim da bi bilo neko opterecenje servera da se pri ucitavanju stranice odradi procedura koja ce da pronadje odgovarajuce prevode za par desetina elemenata...
[ Leftfield @ 13.02.2006. 05:35 ] @
Uradi preko klase, sta drugo. Bazu ces ukucavati rucno, za svaku rijec potrebno mjesto ili i za to napravi klasu koja ca da unese prevod iz xml.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.