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:
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ù 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