Si vous optez pour le choix le plus populaire actuellement - geoIP - sans autre considération, vous ne faites pas un grand service à vos utilisateurs.
Les langues et les pays ne se chevauchent pas. Qu'allez-vous faire avec les utilisateurs d'adresses IP suisses? Belgique? Canada? Si vous optez pour la langue majoritaire dans chaque cas, vous ennuierez les visiteurs réguliers qui font partie de grandes minorités linguistiques: ils seront accueillis dans la «mauvaise» langue à chaque fois, même si le site est disponible en leur langue préférée. Il en va de même pour les expatriés - et par expérience, il est extrêmement déconcertant d'être accueilli, par exemple, en suédois, simplement parce que je voyage en Suède. (Et même les grands sites se trompent: l'autre jour, je suis arrivé à l'aéroport de Vancouver en provenance de Londres et Google m'a transféré sur fr_CA.) N'oubliez pas qu'un grand nombre de personnes sont multilingues ou non natifs de la langue majoritaire de leur pays de résidence.
Voici les guidlines je suit:
- Vérifiez d'abord ce que l'utilisateur est dire vous au sujet de leur choix le plus probable. Les façons les plus simples sont les suivants:
- Parse la langue/culture information de la chaîne agent utilisateur HTTP (examples for Firefox). Cela vous dit quelque chose sur la version du système d'exploitation qu'ils exécutent, et est une très bonne indication de préférence. Ils peuvent bien sûr être des usurpateurs d'utilisateurs, mais s'ils le font, ils sont moins susceptibles d'être surpris qu'ils reçoivent de mauvais pré-ensembles.
- Accept-Language En-tête HTTP (priorité inférieure, car vous risquez de voir plus de "en" ici que les utilisateurs réels avec l'anglais comme préférence du système d'exploitation).
- Deuxièmement, enregistrer la préférence de l'utilisateur. S'ils se connectent, demandez-leur et enregistrez-les en option.Sinon, définissez un cookie (avec un paramètre d'expiration raisonnable). De cette façon, ils seront agréablement surpris quand ils reviendront.
- N'utilisez GeoIP qu'en dernier recours.
Brillant. Merci pour une réponse très complète. – Eric
Je dois seulement mentionner que la plupart des agents utilisateurs se configurent eux-mêmes en fonction du langage du système d'exploitation, il n'est donc pas nécessaire de vérifier les deux en-têtes; plus, Accept-Language est un peu plus facile à analyser que les chaînes compliquées de l'agent utilisateur. – igorsantos07