Ciao,
Una possibile soluzione già sperimentata ampiamente è
usare una variabile di sessione per salvare la lingua da usare
e poi appoggiarsi a tabella nel DB che contiene le varie traduzioni...
1) crei ad esempio tab_traduzioni e la riempi:
codice:
INSERT INTO tab_traduzioni (ita_frase, eng_frase, fra_frase)
VALUES ('esci', 'logout','déconnexion');
2) quando l'utente sceglie la lingua inziializzi $_SESSION['lang']
ad esempio $_SESSION['lang']='eng'; // qui uso lo stesso prefisso del campo della tabella
3)Poi crei una classe (chiamiamola Poliglot)
che si occupa di accedere alla tabella e gestire vari aspetti (vedi tu cosa ti serve)
e sopratutto ha un metodo pubblico:
Translate ($frase_ita) che:
fa un
'SELECT '.$_SESSION['lang'].'_parola WHERE upper(ita_frase) = upper($frase)";
e restituisce il risultato
4)Così tu puoi sviluppare tutto il sito come credi e quando hai bisogno di un termine multilingua fai una cosa del tipo
Codice PHP:
$poliglot = new Poliglot( );
echo $poliglot->Translate('esci');
così e a seconda della lingua scelta dall'utente avrai 'esci', 'logout', o ','déconnexion';
ma il codice resta compatto e leggibile
Naturlamente io la mia classe Poligliot l'ho infarcita di tanti piccoli helper per la formattazione dinamica del testo del testo, le abbreviazioni, il controllo degli errori se mancano le parole, ecc. ecc.
(ad esempio se devo far stare 'déconnexion' nello stesso spazio di 'esci',
posso scegliere tra ho una funzione che riduce il carattere, o una che usa l'abbreviazione appropriata...)