Per fare questo hai diverse possibilità.

1. Scegli la lingua con un parametro GET['lingua'] (o GET['lang'] che fa più fico!!)
2. Una volta che sai la lingua da presentare al tuo utente, la assegni ad una SESSIONE per evitare noie e richiami una variabile che definisce cosa far vedere all'utente.

ad esempio se prendi i dati della lingua dal database allora fai in questo modo:
SELECT * FROM tabella WHERE lingua = '$_SESSION[lingua]'
se prandi i dati da un file, supponiamo che tu abbia salvato i file in diverse cartelle (ita, eng, esp, ecc...)

richiami il file che definisce le variabili o le costanti in questo modo

include('lingua/'.$SESSION['lingua']);

all'interno avrai un file che definisce le costanti della lingua scelta

$var = "Ciao";
oppure
define("CIAO","Ciao");

che richiamerai nel tuo script opportunamente valorizzata.

per la scelta della lingua io in passato ho fatto così:

Codice PHP:
$lingue = array('ita''eng''esp''fra'); # lingue consentite
if (!isset($_SESSION['lingua'])) {
     
     
# primo caso, non hai scelto la lingua ma non esiste ancora la sessione
     # se NON scegli una lingua inposti la lingua di default
     
if(empty($_GET['lingua'])) {
        
$lingua 'ita' # lingua di default
        
$_SESSION['lingua'] = $lingua
    
} else {
         
         
# se scegli una lingua, devi controllare che sia corretta con in_array
         # e poi imposti le variabili
        
$lingua = (in_array($lingue,$_GET['lingua']))) ? $_GET['lingua'] : 'ita';
        
$_SESSION['lingua'] = $lingua;
    }
} else {
 
     
# secondo caso, se hai già una scelta, 
    # devi sono controllare che la scelta non venga modificata
    
if(!empty($_GET['lingua'])) {

        
$lingua = (in_array($lingue,$_GET['lingua']))) ? $_GET['lingua'] : 'ita';
        
$_SESSION['lingua'] = $lingua;
    }

Ti ho commentato bene il codice, spero di essere stato chiaro.

Se hai altri dubbi... chiedi pure!