Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    378

    Organizzazione ideale del database per un sito multilingua

    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à

  2. #2
    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...

  3. #3
    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.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    378
    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à

  5. #5
    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...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    378
    Grazie mauri@como ora provo!
    Basta vivere,
    basta amare ogni momento
    e non porsi alcuna domanda
    sul momento che verrà

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.