Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499

    Impostare lingua nelle pagine

    Ciao ragazzi ma la ricerca non va ancora bene? Quando eseguo la ricerca il sistema mi chiede se voglio salvare la agina php...
    La mia domanda è questa, vorrei far capire al brower quale file di lingua includere per visualizzare le pagine; pensavo di usare le sessioni.
    Quindi se la sessione è vuota imposto l'italiano
    Codice PHP:
    if (!isset($_SESSION['language'])){    
                
    $_SESSION['language'] = "italian";    
    }
    include(
    DIR_AV_LANGUAGES $_SESSION['language'] . 'php'); 
    Ma come imjposto le altre lingue? Come le recupero?

  2. #2
    Il codice che hai postato dovrebbe andare bene, non capisco dov'è il problema!!
    Devi solo impostare la sessione corrispondente alla lingua!
    http://www.firesoftweb.it - Servizi gratuiti per il tuo sito web: forum, guestbook, contatori visite...

  3. #3
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Si, infatti. Le lingue le imposto tramite il calssico pulsantino a forma di bandiera.
    Ma cosa associo al link per impostare una sessione diversa? Lo imposto e recupero da link?
    Ad esempio
    www.sito.it/index.php?language=eng?
    poi recuper il valore e imposto la sessione?

    Ma qui miu viene da chiedere... posso anche non usare se sessioni e fare un controllo sulla variabile language; se vuota (italiano), se eng (inglese), ecc...

    Non capisco l'utilità della sessione facendo cosi.. :master:

  4. #4
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Allora dal click della lingua punto alla pagina set_language
    Codice PHP:
    if ($_GET['lang'] != "") { 
        switch (
    $_GET['lang']) {
        case 
    'eng':
        
    session_destroy();
         
    $_SESSION['language'] = "english";
        break;
        case 
    'ger':
        
    session_destroy();
         
    $_SESSION['language'] = "german";
        break;
          default:
          
    session_destroy();
         
    $_SESSION['language'] = "italian";
        }

        
    header("Location: ../index.php");


    Poi nella index recupero cosi
    Codice PHP:
    include(DIR_AV_LANGUAGES $_SESSION['language'] . '.php'); 
    Quando lo provo non passa nessun valore... dove sbaglio?

  5. #5
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    up

  6. #6
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Non c'è nessuno che mi può spiegare?

  7. #7
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716
    scusa la domanda, ma usi il php per fare un sito multilingue e poi hai le tre versioni del sito statico nelle tre diverse lingue? :master:

    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

  8. #8
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Non ho capito la domanda. Non ho tre versioni del sito statico, ma solo una.

    Ogi variabile di testo viene recuperata dal proprio file di lingua. In base ai link a forma di bandierina imposto la sessione della lingua; in base alla sessione includo i diversi file che contengono le variabili di testo scritte nella lingua opportuna.

    Quello che non capisco è come fare ad impostare la sessione. Il link è cosi
    set_language?lang=eng

    Il file set_language.php è cosi
    Codice PHP:
    ini_set('session.save_path','/tmp');
    session_start();

    if (
    $_GET['lang'] != "") { 
        switch (
    $_GET['lang']) {
        case 
    'eng':
        
    session_destroy();
         
    $_SESSION['language'] = "english";
        break;
        case 
    'ger':
        
    session_destroy();
         
    $_SESSION['language'] = "german";
        break;
          default:
          
    session_destroy();
         
    $_SESSION['language'] = "italian";
        }
        
        
    header("Location: ../index.php"); break;

    } else { 
    // se lingua è vuoto imposto italiano
     
    session_destroy();
         
    $_SESSION['language'] = "italian";
        
    header("Location: ../index.php"); break;

    Se imposto un echo della session per verificare se viene settata, funziona.
    Ma se la sessione la stampo nella index, dopo che viene fatto il redirect, è vuota. Come mai?
    Se sbaglio anche metodo accetto altri consigli.
    N.B.
    - Al primo ingresso è sempre la lingua italiana che rimane come default. C'è da dire che interpello set_language.php solo quando clicco sulle bandiere (quindi da nessuna parte imposto l'italiano come default)
    - Ogni link interno al sito non passa mai la variabile ?lang= quindi è sempre la SESSION impostata che comanda.

    Grazie

  9. #9
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716
    ah ok avevo anche io un problema del genere (con dei cookie però).
    non saprei bene da cosa è dato, io ho risolto facendogli fare un doppio refresh della pagina, era come se il primo refresh vedesse ancora il cookie vecchio

    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

  10. #10
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Ma il doppio refresh dove lo imposti?
    Nella index (e come?)
    Potresti postare il codice come lo hai utilizzato tu?

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.