[ 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
[ broker @ 11.02.2006. 23:43 ] @
http://www.elitesecurity.org/tema/140567
http://www.elitesecurity.org/tema/145134
http://www.elitesecurity.org/tema/108063
http://www.elitesecurity.org/tema/49690
http://www.elitesecurity.org/tema/158056
http://www.elitesecurity.org/tema/90748

[ 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.