Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: news multilingua

  1. #1
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128

    news multilingua

    ho due tabelle per gestire le news

    una dove salvo i dati principali (id, autore, data etc) e nell'altra dove tramite l'id della news salvo la news nelle varie lingue (faccio un esempio semplificato)

    codice:
    TABELLA NEWS
    id_news - autore - sezione - data
    
    TABELLA NEWS TESTO
    id_news - titolo - testo - lingua
    
    
    --------
    
    TABELLA NEWS
    1 - andrea - news - 2010-08-31 21:00:00
    
    TABELLA NEWS TESTO
    1 - titolo news - ciao mondo - italiano
    1 - title news - hello world - inglese
    Mi sono spiegato come vengono salvati i dati? nella prima tabella salvo la news, nella seconda prelevando l'id della news specificata la scrivo nelle varie lingue in cui la voglio tradurre.


    Il mio problema è come ora gestire la visualizzazione della news corretta.
    Io ho una lingua principale nel mio cms (che imposto nel dati di configurazione) e poi i vari utenti registrati posso gestire la loro lingua in cui voglio vedere il sito tradotto (da connessi logicamente).

    Diciamo che io ora prelevo tutte le news che ho salvato e le visualizzo nella lingua principale del sito da normale visitatore.
    Da connesso però voglio vedere la news nella lingua in cui io imposto e se la news non dovesse esistere nella lingua impostata da me la visualizzo nella lingua principale del sito.

    come posso fare?


    avevo buttato qualcosa di simile

    Codice PHP:
    SELECT FROM tabella_news 
    JOIN tabella_news_testo ON tabella_news
    .id_news tabella_news_testo.id_news 
    WHERE tabella_news
    .stato AND tabella_news.tipo AND (tabella_news_testo.id_lingua $sessione_id_lingua OR tabella_news_testo.id_lingua 1)
    ORDER BY tabella_news.id_news ASC 
    ma così non va bene perchè mi visualizza sia le news nella lingua principale del sito (tabella_news_testo.id_lingua = 1) sia nella lingua impostata dall'utente da connesso (tabella_news_testo.id_lingua = $sessione_id_lingua).
    mentre come detto poco fa voglio vedere le news nella lingua impostata dall'utente da connesso e se non dov'esse esistere la news in quella lingua la visualizzo nella lingua principale del sito.

    chi mi riesce ad aiutare?

  2. #2
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    nessun aiuto suggerimento?

  3. #3
    $sessione_id_lingua ti dovrebbe restituire la lingua? hai provato a vedere in che modo te la restituisce se ad esempio "IT" oppure "ITA" oppure "ITALIANO" ?

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    ti dovrebbe bastare un controllo su $sessione_id_lingua, prima della query: se è settato prende il valore settato (utente loggato), altrimenti lo setti = 1.
    quindi quella riga della query diventerebbe
    WHERE tabella_news.stato = 1 AND tabella_news.tipo = 0 AND tabella_news_testo.id_lingua = $sessione_id_lingua


    oops.. non avevo letto l'altra risposta..
    @net4fun: dovrebbe restituire un numerico, almeno nella query così sembra..

  5. #5
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    Quello che voglio fare io e avere l'elenco delle news nella lingua impostata dall'utente e se la
    news in questione non esiste in quella lingua la vedo nella lingua impostata dal sito.

    Come mi avete detto voi trovo la lingua settata e stampo tutte le news nella lingua trovata mentre io voglio sempre e comunque stampare tutte le news presenti! Se esistono nella lingua da me settata le visualizzo queste news nella mia lingua mentre le altre dove la traduzione non esiste nella mia lingua le visualizzo nella lingua settata dal cms ma comunque stampo tutte le news presenti. Mi son riuscito a spiegare ?

  6. #6
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    Originariamente inviato da net4fun
    $sessione_id_lingua ti dovrebbe restituire la lingua? hai provato a vedere in che modo te la restituisce se ad esempio "IT" oppure "ITA" oppure "ITALIANO" ?
    perché ? Cmq le tabelle che ho scritto sono solo un esempio .. La lingua ricavo con un id io (esempio Italia = 1, inglese = 2 etc)

  7. #7
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    faccio un piccolo esempio pratico.

    mettiamo che la lingua principale del sito è l'italiano e la seconda lingua disponibile è l'inglese;
    ci sono 5 news

    1) scritta in italiano
    2) scritta in italiano
    3) scritta in italiano + traduzione inglese
    4) scritta in italiano
    5) scritta in italiano + traduzione inglese

    -un utente scollegato vede le news solo in italiano perchè è la lingua impostata dal cms come predefinita

    -un utente collegato, se ha impostato nel profilo come propria lingua in inglese vede le news in questo modo:

    1) scritta in italiano
    2) scritta in italiano
    3) traduzione inglese
    4) scritta in italiano
    5) traduzione inglese

    mi sono spiegato ora?

  8. #8
    Secondo me, dovresti mettere un controllo anche lato PHP oltre che SQL.

    Cioè, prima di farle visualizzare, dovresti effettivamente controllare se per quella news, esiste la versione tradotta.

    In modo tale che, cicli tutte le news nella lingua 1, poi se l'utente ha impostato lingua 2, controlli se per quella NEWS esiste la traduzione.

    Se esiste fai visualzizare il titolo e il testo di quella tradotta, altrimenti fai vedere quella in lingua 1.

    Chiaro?

  9. #9
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    Originariamente inviato da Samleo
    Secondo me, dovresti mettere un controllo anche lato PHP oltre che SQL.

    Cioè, prima di farle visualizzare, dovresti effettivamente controllare se per quella news, esiste la versione tradotta.

    In modo tale che, cicli tutte le news nella lingua 1, poi se l'utente ha impostato lingua 2, controlli se per quella NEWS esiste la traduzione.

    Se esiste fai visualzizare il titolo e il testo di quella tradotta, altrimenti fai vedere quella in lingua 1.

    Chiaro?
    grazie è proprio quello in cui sto cercando di ragionare come fare.. ma non riesco a capire come scriverlo..

  10. #10
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    riesci per caso a darmi un aiuto?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.