vorrei sapere secondo voi qual'è il miglior modo di orgnaizzare le pagine e il database per un sito multilingua dove nella versione italiana ci sono i seguenti campi di db:
id_news = int
titolo = varchar
descrizione = text
testo = text
grazie![]()
vorrei sapere secondo voi qual'è il miglior modo di orgnaizzare le pagine e il database per un sito multilingua dove nella versione italiana ci sono i seguenti campi di db:
id_news = int
titolo = varchar
descrizione = text
testo = text
grazie![]()
Basta vivere,
basta amare ogni momento
e non porsi alcuna domanda
sul momento che verrà
inanzitutto credo che tu sia vincolato ad avere una copia del db per ciascuna lingua.
detto questo se le tabelle hanno un codice con una radice diversa e una desinezna diversa e con gli stessi attributi (parliamo sempre di nomi) il lavoro è facilitato di molto: basta che nell'url metti un campo che ti faccia capire quale lingua vuoi usare.
ad esempio:
www.tuosito.com/pagina.php?lan=eng&id=3
ti permette di fare una query del tipo
$lingua=$_GET['lan'];
$sql="select * from $lan"."_desinenza_tabella WHERE id=3";
ovviamente sei obbligato ad avere tabelle con certi nomi:
eng_desinenza_tabella
ita_desinenza_tabella
ecc..
i cui attributo - ripeto - devono avere gli stessi nomi!
spero di essere stato chiaro
![]()
..povero silvio, lui è sceso in campo..
e lo ha fatto per noi...comunisti...
non so se è meglio o peggio, ma io creerei un db tipo questo:
id_news = int
titolo_it = varchar
titolo_uk = varchar
titolo_fr = varchar
descrizione_it = text
descrizione_uk = text
descrizione_fr = text
testo_it = text
testo_uk = text
testo_fr = text
Se tuute le pagine saranno trodotte in tutte le lingue risparmi un pò campi id.
...e poi avresti una sola tabella.
se dovevo inserire il contenuto separatmente la tecnica di
mauri@como mi sarebbe andata molto bene,
ma il fatto è che nel cms vorrei inserire più lingue contemporaneamente una la traduzione dell'altra, per cui forse sarebbe meglio avere una tabella tipo quella segnalata da Admin5
id_news = int
titolo_it = varchar
titolo_uk = varchar
titolo_fr = varchar
descrizione_it = text
descrizione_uk = text
descrizione_fr = text
testo_it = text
testo_uk = text
testo_fr = text
in questo caso come dovrei fare per dire alla pagina quali campi deve leggere?
Basta vivere,
basta amare ogni momento
e non porsi alcuna domanda
sul momento che verrà
con la stessa tecnica di prima: è solo che la radice questa volta è radice dell'attributo e non radice della tabella:
$sql="select titolo_".$lan." from tabella where id_news=3";
non cambia niente..solo che potresti avere tabelle lunghissime se hai molte lingue (ma non credo, giusto?)
![]()
..povero silvio, lui è sceso in campo..
e lo ha fatto per noi...comunisti...
Grazie mauri@como ora provo!
Basta vivere,
basta amare ogni momento
e non porsi alcuna domanda
sul momento che verrà