Rilevamento automatico della lingua del browser e redirect in PHP

Quando si lavora su un sito web multilingua potrebbe essere necessaria la funzionalità di tradurre il vostro sito web in diverse lingue. Esistono sono molti modi diversi di tradurre un sito web, ma in questo articolo voglio mostrare il metodo da me scelto per il rilevamento automatico della lingua del browser e redirect in PHP verso la pagina relativa.

Per iniziare è necessario sapere quale lingua bisogna utilizzare quando un utente naviga sul sito web ed atterra nella pagina interessata. Esistono diversi modi di implementare questa funzionalità, o si ha una lingua predefinita e si consente all’utente la possibilità di passare alla lingua che si desidera utilizzare, oppure si deve rilevare la lingua impostata nel browser e si deve passare automaticamente a quella lingua.

La variabile HTTP_ACCEPT_LANGUAGE

Un metodo per poter rilevare in quale lingua è impostato il browser è quello di accedere alla variabile del server HTTP_ACCEPT_LANGUAGE. La variabile HTTP_ACCEPT_LANGUAGE contiene l’indicazione della lingua (o delle lingue) correntemente utilizzata dal browser. Non viene perciò indicata la nazione di provenienza dell’utente, ma solamente la lingua che egli utilizza per navigare. Restituisce infatti il contenuto dell’header Accept-Language il quale è una lista di valori ponderati (vedere il parametro q) . Ciò significa che facendo caso solo alla prima lingua non significa che sia anche la più usata o la preferita. Sul computer in cui mi trovo ora, ad esempio, viste le differenti impostazioni dei browser principali, il contenuto della variabile HTTP_ACCEPT_LANGUAGE è questo: firefox, con impostato italiano come lingua principale, inglese (US) e inglese generico come lingue secondarie: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3.

Esempio di rilevamento della lingua e redirect