Site multilingue et détection de la langue

WRInaute occasionnel
Hello,

Sur un site multilingue, quelle serait la meilleure solution?
1) Détection via cookies de la langue de préférence après que l'internaute ai choisit une langue sur une page pré home?
2) Détection via $HTTP_ACCEPT_LANGUAGE de la langue du navigateur directement, sans avoir une pre home?

Disons que je pense opter pour la solution 2, mais je ne sais pas si je me mélange les pinceaux: est-ce bien deux solutions distinctes? J'ai lu le tuto sur WRI mais cette question subsiste.

Merci
 
WRInaute accro
en fait la solution 2 est basée sur apache et permet de servir la langue préférée configurée dans le navigateur (pour ceux qui le font) et ta solution 1 va être utile pour qu'un internaute puisse choisir et en changer ... Donc les deux mon général.
 
WRInaute occasionnel
Mais quand tu télécharge chrome en français la langue du navigateur est-elle automatiquement configurée de façon à pouvoir utiliser la solution 2?
 
WRInaute accro
me suis jamais posé la question pour firefox (chrome n'existe pas chez moi) mais a priori quand sous windows tu définie la langue pour l'installation, je pense que le navigateur se configure dans le bon sens.
 
WRInaute accro
Il y a très peu de cas où tu as besoin de faire une détection de langue. Toutes tes pages doivent avoir une URL différente pour chaque langue (de préférence dans le domaine ou le chemin, pas dans les paramètres après ?), pour que toutes les versions soient accessibles par les robots, puissent être mis en bookmark, etc.

Donc les utilisateurs qui arrivent par un moteur de recherche ou un bookmark arriveront directement sur la bonne version (si la langue de chaque version est correctement identifiable bien sûr).

Le seul cas où tu as une détection à faire c'est donc si l'utilisateur tape ton nom de domaine directement. Là, tu peux faire une détection et faire un redirect vers la bonne version. C'est important de faire un redirect et de ne pas afficher directement la langue en question. Il est aussi important d'avoir une option par défaut (si la langue n'est pas transmise, comme c'est le cas pour un robot par exemple, ou si elle ne fait pas partie de celles que tu gères), et il est aussi important de prévoir des liens vers les autres langues (ce qui permettra au minimum aux robots de trouver toutes les versions, mais aussi à l'utilisateur de choisir la version de son choix).

Tu peux éventuellement stocker le fait que l'utilisateur a choisi une langue explicitement et stocker ça dans un cookie qui va l'emporter sur la détection normale, mais encore une fois, uniquement pour la page d'accueil sans identification de la langue.

Exemple:
http://www.exemple.com/ -> détection de la langue -> redirection vers http://www.exemple.com/fr/ ou http://fr.exemple.com/ si français, etc. Toutes les autres pages doivent intégrer la langue dans l'URL.

Jacques.
 
Discussions similaires
Haut