Il redirect in base alla lingua dovrebbe essere impostato con una funzionalità lato server e non lato client. I motivi sono essenzialmente due:
1) il visitatore dovrebbe essere avvertito nel caso di un redirect
2) il browser invia nelle intestazioni HTTP alcune informazioni che si possono estrarre con un processo lato server come variabile e fare un redirect prima dell'invio della risposta HTTP. Questo naturalmente migliora la velocità di navigazione perché si salta l'output della pagina che effettua il redirect.
Con php credo che sia possibile fare un processo che elabori una pagina in funzione della lingua. Con Apache 2.0 addirittura si può predisporre un redirect in base alla lingua per pagine statiche, è sufficiente spulciarsi il manuale di documentazione di Apache.
Infine bisogna prendere atto di quello che ha scritto tripleshift: il redirect funziona se l'utente ha impostato una lingua predefinita per pagine Web alternative e questo probabilmente lo fa il 10% degli utenti Web.
A quel punto, meglio mettere le classiche bandierine su ogni pagina e lasciare all'utente la scelta consapevole della lingua, salvo poi sfruttare i cookie per rendere definitiva questa scelta.