Pagina 1 di 10 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 95
  1. #1

    [Pillola] Rendere un sito multilingue

    Visto che molti di voi si sono chiesti come realizzare uno script PHP per rendere un sito multilingue, ho deciso di scrivere questa pilloletta, spero sia di vostro gradimento!

    Allora, innanzitutto realizzeremo tutto utilizzando un include e le sessioni, niente di più facile.

    Creiamo un file chiamato "config.php" oppure apriamo il file di config che possiede già il nostro sitarello; poi aggiungiamo (prima di qualsiasi eventuale print/echo):
    Codice PHP:
    //Lingua di default
    $defaultlang "it";

    //Cartella dei file di lingua (relativa in base alla posizione del file di config)
    $langpath "lang";

    //Iniziamo ad avviare le sessioni (toglietelo se già le avete aperte)
    session_start();

    //Se esiste la variabile di sessione 'lingua'
    if (isset($_SESSION['lingua'])) { 
        
    //Se esiste il parametro WEB inviato tramite GET 'lang'
        
    if(isset($_GET['lang'])) {
            
    //Effettuiamo qualche aggiusto per eventuali hack...
            
    $_GET['lang'] = str_replace("/",""trim(strtolower($_GET['lang'])));
            
    //Se esiste il file di lingua corrispondente al parametro GET richiesto
            
    if (is_file($langpath."/".$_GET['lang'].".php")) {
                
    //Imposta la sessione 'lingua' con la lingua scelta
                
    $_SESSION['lingua'] = $_GET['lang'];
            
    //Altrimenti
            
    } else {
                
    //Imposta la sessione 'lingua' in quella di default
                
    $_SESSION['lingua'] = $defaultlang;
            }
        }
    //Altrimenti
    } else {
        
    //Imposta la sessione 'lingua' in quella di default
        
    $_SESSION['lingua'] = $defaultlang;
    }
    //Finalmente includiamo il file di lingua giusto
    include($langpath."/".$_SESSION['lingua'].".php"); 
    Bene, tutto questo va salvato all'interno del config (o di un file che sia incluso in ogni pagina del sito).

    Ora vi spiegherò come creare i file di lingua: innanzitutto creiamo all'interno della cartella "lang" un file ".htaccess", in modo tale da rendere invisibile agli utenti questa cartella e dentro mettete solo:
    codice:
    Deny from all
    Poi creiamo il file chiamato "it.php". Tutti gli altri file di lingue dovranno avere il formato "lingua.php".

    Il file dovrà essere impostato in questa maniera:
    Codice PHP:
    <?
    //Impostiamo data, ora e giorni della settimana, insomma tutto in italiano
    setlocale(LC_ALL"it_IT");

    //Iniziamo quindi con i contenuti in italiano del sito
    $trad['titolosito'] = "Radio Web Stereo - La tua abitudine pi&ugrave; bella";
    $trad['titoloblocco1'] = "La tua radio";

    //eccetera...

    ?>
    Vediamo come apparirebbe invece il file "en.php" (lingua inglese):
    Codice PHP:
    <?
    //Impostiamo data, ora e giorni della settimana, insomma tutto in inglese
    setlocale(LC_ALL"en_EN");

    //Iniziamo quindi con i contenuti in italiano del sito
    $trad['titolosito'] = "Radio Web Stereo - Your most beautiful habit";
    $trad['titoloblocco1'] = "Your Radio";

    //eccetera...

    ?>
    Ora, per poter utilizzare queste stringhe sul vostro sito, vi occorrerà semplicemente andare nella pagina desiderata e, in sostituzione al testo, incollate questo:
    Codice PHP:
    <? echo $trad['nome_della_variabile_da_inserire']; ?>
    Poi, mettete delle belle bandierine con le varie lingue, linkandole come da esempio:
    Codice PHP:
    [url="<? echo $PHP_SELF ?>?lang=it"]Italiano[/url] | [url="<? echo $PHP_SELF ?>?lang=en"]English[/url]
    Spero di essere stato chiaro, e spero che questa pillolina possa essere utile in futuro a chi come me si è trovato di fronte a questo problema Ciauz
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  2. #2
    bello!!
    visit the BEST italian fotolog http://www.ghiacciato.it/fotolog

    "Solo due cose sono infinite, l'universo e la stupidità dell'essere umano.. ma sulla prima ho ancora delle riserve.." A.Einstein

  3. #3
    Io (Se posso permettermi ) consiglio di metterlo in rilievo e una giuda che non si trova ed è fatta bene ...
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Una domanda. A quale livello agisce setlocale ? Sessione ?

  5. #5
    bhe esatto, utilizza le sessioni per ricordare la lingua in uso, mentre setlocale per le date, i giorni ecc...
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  6. #6
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    mi permetto di aggiungere 2 cose:

    - su freephp esiste un'articolo al riguardo:
    Creare siti multilingue con Apache e PHP

    - setlocale non è sempre funzionante



    think simple think ringo

  7. #7
    si, ma quella guida non ti permette di integrare pagine dinamiche in php su varie lingue, poiché considera la presenza di diverse versioni .html della stessa pagina statica...
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  8. #8
    mi ricorda tanto qualcosa...


    http://forum.html.it/forum/showthrea...=&pagenumber=1

    ma non mi ricordo bene cosa...
    Ciao!

  9. #9
    si, lo so, ed è proprio leggendo quella domanda che ho deciso di fare la pilloletta, però che ne sapevo che mentre la scrivevo arrivavi tu e rovinavi tutto?
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  10. #10
    in effetti, la tua pillolina è interessante e modifica un pochino quello che io ho fatto in un mio sito in via di pubblicazione...

    io prendevo il valore della lingua e lo assegnavo al percorso del file con le definizioni...

    cioe:

    $path = "template/$lang/definitions.php"

    e in questo modo il valore della lingua indicava dove prendere il file con le definizioni.

    mi devo studiare bene la tua...
    Ciao!

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.