A evo i ja da predložim jedno neobično rešenje za realizaciju multi-jezičnosti...
Naime, moja ideja bi se svodila na to da se ti tekstualni podaci - title, short_desc, long_desc, čuvaju u JSON formatu (verovali ili ne

), jer JSON može da čuva neki niz u obliku string-a. Npr. administrator u admin panel-u unese neke stavke i naravno, sva ova polja unese na zasebnim jezicima, i nakon submit-a, to se "spakuje" u neki ovakav niz:
Code:
$niz_title = array('en'=>'Naslov na engleskom', 'ger'=>'Naslov na nemackom', 'fr'=>'Naslov na francuskom', 'esp'=>'Naslov na spanskom');
I tako i za druga dva polja, short_desc i long_desc.
Posle se to samo prebaci u JSON -
$tekst = json_encode($niz);, i dobija se ovakav string:
{"en":"Naslov na engleskom","ger":"Naslov na nemackom","fr":"Naslov na francuskom","esp":"Naslov na spanskom"}
Na taj način, u bazi nema potrebe za id-evima jezika, spajanjima, itd., već se za svaki red u tabeli u tim tekstualnim poljima čuvaju ti stringovi, koji u sebi imaju niz.
I onda recimo na nekoj stranici se uzima taj parametar iz URL-a koji govori koji je jezik izabran, pa kad se dohvate ti podaci iz baze za određeni id, treba samo te tekstove ponovo "otpakovati" u niz, ovako:
Code:
$lang = $_GET['lang']
//Pa sad ide neki upit bazi
$row = mysql_fetch_assoc($result);
$title = json_decode($row[0]['title']);
//Sad je title ponovo niz:
//array('en'=>'Naslov na engleskom', 'ger'=>'Naslov na nemackom', 'fr'=>'Naslov na francuskom', 'esp'=>'Naslov na spanskom')
echo '<h2>' . $title[$lang] . '</h2>';
$short_desc = json_decode($row[0]['short_desc']);
echo '<p>' . $short_desc[$lang] . '</p>';
$long_desc = json_decode($row[0]['long_desc']);
echo '<p>' . $long_desc[$lang] . '</p>';
I to je sve...
Nikad nisam probao ovako nešto, ali verujem da bi moglo da prođe...
[Ovu poruku je menjao Nikola Poša dana 17.06.2009. u 11:44 GMT+1]