在Django应用程序中检查访问者的地理位置

时间:2010-02-24 13:28:42

标签: django geolocation django-multilingual

我正在制作一个多语言的Django网站。我希望该网站检查用户访问该网站的国家/地区,并根据该决定使用哪种语言。

什么是一个好用的工具?

3 个答案:

答案 0 :(得分:3)

如果您的一位普通用户携带笔记本电脑到另一个国家访问您的网站,无法理解某些内容而无法更改语言,那就太糟糕了。

我不建议检查国家/地区(可能是IP)。而是转到客户端浏览器发送的Accept-Language标头。您仍然应该选择让用户手动更改语言(例如,将首选项存储在会话中)。

另一个选择是维基百科样式并通过URL设置语言(en.example.com,de.example.com或example.com/en/,example.com/de /)。

答案 1 :(得分:2)

我的网站上有类似的问题,我使用MaxMind IP免费数据库作为模型,它被称为中间件。

当用户访问该网站时,中间件会通过他的IP检测到他的国家/地区并将其重定向到正确的语言

答案 2 :(得分:1)

有多种方法可以做到这一点,但一个好的解决方案是使用地理定位套件。根据您的预算,有免费和付费的解决方案。我过去曾使用Digital Element's产品(NetAcuity)来做这类事情,他们的解决方案也是一流的。它们提供内部服务器解决方案(用于高性能应用程序。每秒约30k查询)和针对更典型应用程序的Web服务解决方案。他们有许多语言的API,包括你可以在Django中使用的Python。它们允许您根据用户的IP地址查询地理位置,主要和次要语言,连接速度等信息。根据我的经验,国家级的地理准确性非常准确。

免费的解决方案也是MaxMind,尽管我对他们的产品并不熟悉。