Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 33
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292

    sito multilingua con i tag

    Ciao ragazzi, dovrei realizzare un sito multilingua inizialimente con tre lingue ma in futuro se ne potranno aggiungere altre, ho pensato quindi ad una struttura del tipo:



    Codice PHP:
    $testo "[it]ciao mondo[/it][en]hello world[/en]"//testo all'interno del database 
    Come faccio a visualizzare (in base al linguaggio mandato dal $_GET['lang']="ita") solo la lingua italiana oppure solo la lingua inglese etc..?


    Grazie

    M4tt86

  2. #2
    Utente di HTML.it L'avatar di ade_v
    Registrato dal
    Jan 2001
    Messaggi
    459
    Ma in un solo campo di una tabella hai il contenuto della variabile $testo ?


    Non sarebbe meglio avere una tabella diversa per ogni lingua o anche una sola tabella ma che contenga un campo che identifichi la lingua. ad es.
    FRASE LINGUA
    ciao ita
    hello eng

    e così via
    ade_v@yahoo.it

    Fletto i muscoli e sono nel vuoto

    Se inviate messaggi privati, avvisatemi sul forum...

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Ciao ade_v,
    innanzitutto grazie per la risposta, ma purtroppo quello che dici tu andava bene se le lingue fossero state definitive ma purtroppo non lo sono quindi se dovessi aggiungere dei campi dovrei rivoluzionare tutto l'intero database, in questo modo invece aggiungendo dei tag non si deve andare a toccare niente :-)

    quindi nel mio database (nel campo "saluto" avrò):

    [it]ciao mondo[/it][en]hello world[/en]....

    ma quando richiamo dal "get" la lingua mi deve stampare

    ciao mondo oppure hello world se la lingua (passata dal get) è uguale a "en"

  4. #4
    secondo me questo sistema è un pò, scusami se lo dico cosi, suicida

    l'utilizzo di un campo discriminante è fondamentale in una situazione del genere ... ovvero un campo che discrimina la lingua del testo utilizzata

    in questo modo puoi mettere tutte le lingue che vuoi senza dover aggiungere nessun tipo di campo
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Cioè? non ho capito, spiegami meglio?

  6. #6
    mettiamo che, ad esempio, nel database hai una tabella fatta, attualmente, con

    CODICE, TESTO

    dove la colonna CODICE è la chiave primaria ed è testuale, un varchar che indica il nome del contenuto mentre testo contiene il testo ... ad esempio

    Login.Username => [it]Nome Utente[/it][en]Username[/en]
    Login.Password => [it]Password[/it][en]Password[/en]
    Login.Login => [it]Accedi[/it][en]Login[/en]

    e cosi via

    se aggiungi un campo discriminante, magari di tipo enum, e nel testo lasci solo il contenuto da visualizzare ottieni una tabella di tipo

    CODICE, LINGUA, TESTO

    che contiene, ad esempio

    Login.Username => it => Nome Utente
    Login.Password => it => Password
    Login.Login => it => Accedi
    Login.Username => en => Username
    Login.Password => en => Password
    Login.Login => en => Login

    ti basta fare una select dove indichi la lingua da estrarre ed il gioco è fatto niente espressoni regolari e cosi via che complicano inutilmente il codice e lo rallentano
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Ah ho capito, se non sbaglio intendi dire


    tabella lingue:

    id | codice | lingua

    1 | it | italiano
    2 | en | english

    tabella news:

    id | titolo | descrizione | id_lingua

    1 | ciao | ciao mondo | 1
    2 | hello | hello world | 2

  8. #8
    si

    il mio esempio era per una struttura un pò più generica ma ovviamente lo si può adattare rendendolo legato a qualsiasi struttura come hai fatto tu

    con questo sistema ti semplifichi la vita tremendamente perché per la visualizzazione, semplicemente, specifichi anche l'id della lingua ed invece per la modifica, sul pannello di controllo, li mostri tutti visualizzando anche la bandierina della lingua accanto al testo, ad esempio
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Non ci avevo pensato :-), grazie

    un altra cosa,

    quando faccio l'inserimento dovrei fare un ciclo anche per l'inserimento dei record giusto?

    ho provato a fare cosi nel pannello di controllo:

    Codice PHP:
    <table width="200" border="1">

    <form name="form1" method="post" action="">

    <?php while ($row_leggi_lingue mysql_fetch_assoc($leggi_lingue -> result)){ ?>

      <tr>
      
        <td><input type="text" name="titolo_[<?php echo $row_leggi_lingue['id'?>]"></td>
        
      </tr>
      
      <tr>
      
        <td><textarea name="descrizione_[<?php echo $row_leggi_lingue['id'?>]"></textarea></td>
        
      </tr>

    <?php ?>

    </form>

    </table>
    quindi quando posterò i dati e devo inserirli nel db come faccio?

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    up

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.