Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    cambiare pagina in base alla lingua usando la variabile lang=it o lang=en

    Sto finendo una pagina dove tiro fuori la descrizione in italiano o in inglese secondo l'indirizzo del sito e quindi se nell'url c'e' it o en

    Alcune pagine non hanno la descrizione in inglese e vorrei mettere un messaggio in inglese che dice che quella pagina non e' disponibile in inglese.
    questo e' il codice che uso ora:
    Codice PHP:
    switch($lang
            {
            case 
    'it'
            
    $testo_page=stripslashes($riga['news']);
            
    $testo_page preg_replace("#\[link=([^\]]+)\]#i""<a href=\"\\1\">"$testo_page);
            
    $testo_page preg_replace("#\[/link\]#i""</a>"$testo_page);
            break;
            
            case 
    'en'
            
    $testo_page=stripslashes($riga['news_en']);
            
    $testo_page preg_replace("#\[link=([^\]]+)\]#i""<a href=\"\\1\">"$testo_page);
            
    $testo_page preg_replace("#\[/link\]#i""</a>"$testo_page);
            break;
                    
            default: 
            
    $testo_page=stripslashes($riga['news']);
            
    $testo_page preg_replace("#\[link=([^\]]+)\]#i""<a href=\"\\1\">"$testo_page);
            
    $testo_page preg_replace("#\[/link\]#i""</a>"$testo_page);
            } 
    dovrei creare un if else credo, ma sapete dirmi come? in pratica i campi nel db sono:
    news (per la descrizione italiana)
    news_en (per la descrizione inglese)

    quindi se nel campo news_en non c'e' niente mi dovrebbe dare il messaggio...
    Mai dire Mai

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    227
    Ciao! Probabilmente non è quel che vuoi ma è un ottimo modo per gestire un sito multilingua.

    Crea la cartella lang e al suo interno i file en.php e it.php (puoi aggiungerne anche altri)
    Questa è la struttura dei file:

    it.php
    Codice PHP:
    <?php
    $titolo 
    "Il mio sito web";
    $ciao "Ciao";
    ?>
    en.php
    Codice PHP:
    <?php
    $titolo 
    "My website";
    $ciao "Hello";
    ?>

    Struttura del file index.php

    Codice PHP:
    <?php

    $lang 
    $_GET['lang'];

    if (
    $lang == FALSE)
    {
        
    $lang "it";
    }

    require(
    "lang/{$lang}.php");
    ?>
    Ora iniziamo la pagina:

    Codice PHP:
    <?php
    echo"$ciao Marco!";
    echo
    "
    "
    ;
    echo
    "$titolo.";
    ?>

    Per cambiare lingua:

    Codice PHP:
    [url='?lang=it']Italiano[/url]  [url='?lang=en']English[/url

  3. #3
    è lo stesso metodo che uso io....chi lo dice che non è un buon metodo???? La programmazione è una cosa artigianale...non è che per ogni cosa bisogna seguire sempre dei passi prestabiliti....ci vuole fantasia
    V.I.S.T.A. --> Virus Inside, Switch To Apple

  4. #4
    si il metodo e' quello, quello che non ho nel database lo estraggo con i file en.php e it.php ma quello che e' nel db no.

    Pero' ora ho il problema di dire che la descrizione in inglese non e' disponibile se il campo news_en non e' stato riempito...
    Mai dire Mai

  5. #5
    Potresti fare che, nei due file ita ed eng, prevedi una variabile $not_avaiable e poi nelle varie pagine metti una cosa tipo

    Codice PHP:
    ($string == '') ? echo $not_avaiable : echo $stirng
    Dove $string ovviamente è la variabile news_en del db

  6. #6
    ma invece di metterlo nei file, non mi conviene controllare nella query se il campo e pieno o no e dare un messaggio?
    Mai dire Mai

  7. #7
    Si ma come ti ho detto io, puoi mettere messagio ita, messagio eng (Magari qui non ti serve, ma se avevi 3 lingue? )

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.