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

    [PILLOLETTA] creare siti multilingua

    mettiamo il caso di voler creare un sito in 2 lingue italiano/inglese

    creiamo i files ita.php e ing.php

    in ita.php mettiamo
    <?php
    $mex01 = "Benvenuto";
    ?>
    in eng.php mettiamo
    <?php
    $mex01 = "Welcome";
    ?>

    ora nella nostra index.php non ci resta che mettere il messaggio che verrà letto in inglese a seconda del valore della variabile $_GET['lang'];

    <?php
    if(!isset($_GET['lang'])) { include("ita.php"); }
    elseif ($_GET['lang'] == it) { include("ita.php"); }
    elseif ($_GET['lang'] == en) { include("eng.php"); }

    echo $mex01;
    ?>

    ecco fatto..
    se l'url è www.sito.it/index.php sarà "Benvenuto"
    se è www.sito.it/index.php?lang=it sarà "Benvenuto"
    se invece sarà www.sito.it/index.php?lang=en sarà "Welcome"


    magari a qualcuno può servire ^^

  2. #2
    codice:
    $languages = array(
    
    	// default language
    	'ita',
    
    	// other languages
    	'eng',
    	'spa',
    	'ger'
    );
    
    $language = $languages[array_search(array_search('lang',$_GET),$languages)];
    
    echo 'languages/lang.'.$language.'.php';
    // require 'languages/lang.'.$language.'.php';
    è un modo sicuramente più scalabile e ce ne sono tanti altri ... questo ha la peculiarità di essere letto al contrario nel senso che è accettato
    codice:
    ?ita=lang
    ?spa=lang
    ?eng=lang
    mentre se non è presente il valore prima di lang nell'array o se non è presente lang restituisce in automatico il primo della lista, overo il default 'ita'

    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    andre' cosi me lo spaventi

  4. #4
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da andr3a
    codice:
    $languages = array(
    
    	// default language
    	'ita',
    
    	// other languages
    	'eng',
    	'spa',
    	'ger'
    );
    
    $language = $languages[array_search(array_search('lang',$_GET),$languages)];
    
    echo 'languages/lang.'.$language.'.php';
    // require 'languages/lang.'.$language.'.php';
    è un modo sicuramente più scalabile e ce ne sono tanti altri ... questo ha la peculiarità di essere letto al contrario nel senso che è accettato
    codice:
    ?ita=lang
    ?spa=lang
    ?eng=lang
    mentre se non è presente il valore prima di lang nell'array o se non è presente lang restituisce in automatico il primo della lista, overo il default 'ita'

    Bellissimo metodo, soltanto una cosa, magari è una domanda stupida, se io ho definito 10 lingue nell'array dovrò fare il $_GET di ogni lingua?
    わさび

  5. #5
    Scusate.. ma.. sarà che io ho sempre utilizzato le costanti x quanto possibile..

    Se ho due file uno lo chiamo define_ita.php e l'altro define_ing.php

    all'interno ci metto tutte le mie belle costanti (valori standard che vengono utilizzati all'interno del sito)

    Es. define("_NOME", "Nome:"); #in ita
    o define("_NOME", "Name:"); #in ing

    e cosi via..

    recupero la variabile $_GET o come fà n0t o come fà andr3a ed includo a seconda del valore passato

    define_ita.php o define_ing.php

    Può andare??? :quote:
    Questa volta, più che un voto.. è favoreggiamento.

  6. #6
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da Al_katraz984
    Scusate.. ma.. sarà che io ho sempre utilizzato le costanti x quanto possibile..

    Se ho due file uno lo chiamo define_ita.php e l'altro define_ing.php

    all'interno ci metto tutte le mie belle costanti (valori standard che vengono utilizzati all'interno del sito)

    Es. define("_NOME", "Nome:"); #in ita
    o define("_NOME", "Name:"); #in ing

    e cosi via..

    recupero la variabile $_GET o come fà n0t o come fà andr3a ed includo a seconda del valore passato

    define_ita.php o define_ing.php

    Può andare??? :quote:
    Così è come sono gestite le lingue (ad esempio) in oscommerce, ma una sintassi come ?ita=lang, ?spa=lang, ?eng=lang ecc. non mi era mai capitata. È molto facilmente gestibile; l'unico dubbio è che all'aggiunta di una nuova lingua bisogna aggiungere i parametri nel get... vabè siti come quello menzionato sopra hanno funzioni che prendono tutti i parametri dal Get però...
    わさび

  7. #7

    Re: [PILLOLETTA] creare siti multilingua

    Sorry for the sharing, no, non mi spavento.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    157
    anke io uso un foglio di variabili incluso dinamicamente da uno switch.... esempio:
    Codice PHP:
    <?php
    switch($_GET[lang]){
                                case 
    "ita":
                                include(
    "ita.php");
                                break;
                                case 
    "eng":
                                include(
    "eng.php");
                                break;
                                case 
    "fra":
                                include(
    "fra.php");
                                break;
                                default:
                                include(
    "ita.php");
                                }
    ?>

  9. #9
    Originariamente inviato da Trinità76
    se io ho definito 10 lingue nell'array dovrò fare il $_GET di ogni lingua?
    il get non lo devi fare ... basta aggiungere la lingua, che sia prefisso, suffisso o quello che vuoi ...


    come hai detto di solito la lingua viene inviata in get ... nel mio esempio è la stessa cosa solo che lo scrivi al contrario (nei links ad esempio) .... evita lo switch, l'if/ else ... evita il controllo isset($_GET['lang']) ed evita attacchi ... evita tutto con una sola linea:

    $language = $languages[array_search(array_search('lang',$_GET),$languages )];

    però proprio per stare in una linea vorrebbe un link tipo ?fra=lang invece che ?lang=fra ... l'array puoi scriverlo a mano oppure sfogliando in glob la cartella con i files.

    Insomma ho solo mostrato un esempio tra tanti possibili ...
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #10
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da Seso7
    anke io uso un foglio di variabili incluso dinamicamente da uno switch.... esempio:
    Ancora più semplificato:
    Codice PHP:
    <?php
        
    switch( $_GET['lang'] ) {
            
    // lingue previste
            
    case "ita":
            case 
    "eng":
            case 
    "fra":
                require( 
    $_GET['lang'].".php" );
            break;
            default:
                require( 
    "ita.php" );
        }
    ?>


    Originariamente inviato da andr3a
    il get non lo devi fare ... basta aggiungere la lingua, che sia prefisso, suffisso o quello che vuoi ...


    come hai detto di solito la lingua viene inviata in get ... nel mio esempio è la stessa cosa solo che lo scrivi al contrario (nei links ad esempio) .... evita lo switch, l'if/ else ... evita il controllo isset($_GET['lang']) ed evita attacchi ... evita tutto con una sola linea:

    $language = $languages[array_search(array_search('lang',$_GET),$languages )];

    però proprio per stare in una linea vorrebbe un link tipo ?fra=lang invece che ?lang=fra ... l'array puoi scriverlo a mano oppure sfogliando in glob la cartella con i files.

    Insomma ho solo mostrato un esempio tra tanti possibili ...
    grazie, veramente utile
    わさび

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.