2010-02-24 16 views

Répondre

3

Lorsque l'un de vos utilisateurs réguliers se déplace avec son ordinateur portable dans un autre pays et accéder à votre site, ne peut pas comprendre une chose et ne peut pas changer la langue, cela serait nul.

Je ne recommanderais pas de vérifier pour le pays (par IP probablement). Au lieu de cela, allez à l'Accept-Language en-tête du navigateur du client envoie. Vous devriez toujours laisser l'option pour laisser l'utilisateur changer la langue manuellement (et stocker la préférence dans la session par exemple).

Une autre option est le style wikipedia et le réglage de la langue par URL (en.exemple.com, de.exemple.com ou exemple.com/en/, exemple.com/de/).

+0

Je n'ai pas dit que je m'appuierais complètement sur la géolocalisation - j'ai l'intention d'utiliser une combinaison de cela et 'Accept-Language'. (Et bien sûr, je laisserais l'utilisateur changer.) Je ne comprends pas comment l'approche de Wikipedia est utile, je parle ici de la façon de deviner quelle langue l'utilisateur préfère. –

1

Il existe plusieurs manières de procéder, mais une bonne solution consiste à utiliser une suite de ciblage géographique. Selon votre budget, il existe des solutions gratuites et payantes. J'ai utilisé le produit Digital Element's (NetAcuity) pour ce genre de chose dans le passé, et leurs solutions sont de premier ordre. Ils fournissent à la fois une solution serveur interne (pour les applications hautes performances, ~ 30k requêtes par seconde) et une solution de service Web pour des applications plus classiques. Ils ont des API dans de nombreuses langues, y compris Python que vous pouvez utiliser dans Django. Ils vous permettront d'interroger des informations telles que l'emplacement géographique, la langue primaire et secondaire, la vitesse de connexion, etc., en fonction de l'adresse IP de l'utilisateur. La précision géographique au niveau du pays est très précise en fonction de mon expérience.

Une solution gratuite à prendre en compte est MaxMind, même si je ne connais pas très bien leur produit.

2

J'ai eu un problème similaire sur mon site, et j'ai utilisé la base de données libre IP MaxMind comme un modèle et il est appelé comme middleware.

Alors que l'utilisateur va sur le site, le middleware détecte son pays par son IP et le redirige vers la bonne langue

+1

nginx 0.7+ est fourni avec un module geoip qui renvoie les données de localisation de l'utilisateur dans un ensemble d'en-têtes. fonctionne assez bien. – Carson