Mon site est multilingue et je voudrais faire une commutation automatique sur mes pages, afin que chacun puisse les lire dans sa langue préférée. Comment m'y prendre ?

Il y a plusieurs méthodes mais contrairement à ce qu'on aurait pu espérer, ce n'est pas du côté du javascript qu'on trouvera une solution fiable. Les méthodes sérieuses sont toutes basées sur la variable HTTP ACCEPT_LANGUAGE envoyée par le navigateur au serveur lors de sa connexion, lors de l'établissement de la liaison selon le protocole TCP/IP. Cette variable n'est généralement pas accessible en tant que telle au javascript

Il faut d'abord comprendre comment le visiteur définit sa langue préférée. Ce n'est pas la langue dans laquelle sont rédigés les menus de son navigateur, ni même celle celle qu'il a choisie dans son système d'exploitation. Ce choix fait partie des fonctionnalités de tout navigateur et on le fixe généralement par le biais d'un menu de préférences. On peut même souvent choisir plusieurs langues et dire dans quel ordre on les préfère.

Laisser faire le serveur ?

Certains serveurs peuvent rendre d'eux-mêmes le service désiré. C'est le cas en général des serveurs Apache (donc pas chez Wanadoo). Il ne coûte pas grand chose de faire l'essai : à la racine du répertoire, en lieu et place du fichier index.html habituel, placez un fichier index.html.fr pour le français, un second index.html.en pour l'anglais, et ainsi de suite. Les deux dernières lettres correspondent aux codes des langues.
Changez de langue préférée et rechargez votre page d'accueil : vous verrez bien si ça marche ou non.

Une technique pour les pages chez Wanadoo

Le serveur Wanadoo ne fonctionne pas aussi simplement. En revanche, il permet d'utiliser certaines des fonctionnalités offertes par les «SSI» (Serveur Side Includes), et nous allons en profiter pour récupérer le contenu de la variable HTTP_ACCEPT_LANGUAGE. La syntaxe pour la faire apparaître dans votre page est :
<!--#echo var="HTTP_ACCEPT_LANGUAGE" -->
Le résultat dans votre navigateur est le suivant : (none)
La langue préférentielle correspond aux deux premières lettres renvoyées (fr pour le français, en pour l'anglais, de pour l'allemand, etc...). Les autres langues éventuelles apparaissent après.
En principe, les SSI devraient permettre de faire des tests et renvoyer directement dans la langue demandée, mais on ne peut faire cela chez Wanadoo à cause d'une implantation incomplète des SSI. On peut néammoins contourner la difficulté en combinant javascript et SSI et en faisant la redirection en javascript, comme indiqué ci-dessous :

<script type="text/javascript">
<!--
	var lang='<!--#echo var="HTTP_ACCEPT_LANGUAGE" -->';
/* cette syntaxe transforme la variable SSI en variable javascript.
On fait ensuite la redirection selon les 2 premières lettres */

        lang = lang.substr(0,2);
        if (lang=="fr") {
                /* direction page française */
        }
        else if (lang=="en") {
                /* direction page anglaise */
        }
        else {
                /* direction page par défaut */
        }
//-->
</script>

Bien entendu cette redirection automatique ne dispensera pas d'offrir au visiteur un choix manuel pour changer de langue, ne serait-ce que pour les visiteurs qui auraient désactivé leur javascript.

Ce qu'offre le javascript

Le javascript propose différentes propriétés de «langue» pour l'objet navigator, mais aucune n'est universelle. La seule qui nous donnerait la bonne réponse (c.à.d. la langue figurant en tête dans les Préférences du navigateur) est navigator.userLanguage mais elle ne fonctionne que pour Explorer. On invoque souvent navigator.language, mais cette propriété n'est pas définie pour les Explorer (où elle est remplacée par navigator.browserLanguage), et c'est la langue dans laquelle a été compilé le navigateur (la langue de ses menus), pas forcément celle que préfère le visiteur.

Ci-dessous, à titre d'exemple, ces quelques propriétés telles que les voit votre navigateur particulier :

Gérald — Charles
Remerciements à «Aph» pour avoir mis la question sur le tapis