检查访客';Django应用程序中的地理位置

检查访客';Django应用程序中的地理位置,django,geolocation,django-multilingual,Django,Geolocation,Django Multilingual,我正在制作一个多语言的Django网站。我希望该网站检查用户从哪个国家访问该网站,并根据这一点决定使用哪种语言 什么是一个好的工具呢?当你的一个普通用户带着他的笔记本电脑去另一个国家访问你的网站,不能理解一件事,也不能改变语言,那将很糟糕 我不建议检查国家(可能是IP)。改为使用客户端浏览器发送的Accept Language标题。您仍然应该保留让用户手动更改语言的选项(例如,将首选项存储在会话中) 另一种选择是采用维基百科风格,通过URL(en.example.com、de.example.c

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


什么是一个好的工具呢?

当你的一个普通用户带着他的笔记本电脑去另一个国家访问你的网站,不能理解一件事,也不能改变语言,那将很糟糕

我不建议检查国家(可能是IP)。改为使用客户端浏览器发送的
Accept Language
标题。您仍然应该保留让用户手动更改语言的选项(例如,将首选项存储在会话中)


另一种选择是采用维基百科风格,通过URL(en.example.com、de.example.com或example.com/en/、example.com/de/)设置语言。

当你的一个普通用户带着他的笔记本电脑到另一个国家访问你的网站时,他不能理解任何东西,也不能更改语言,这会很糟糕

我不建议检查国家(可能是IP)。改为使用客户端浏览器发送的
Accept Language
标题。您仍然应该保留让用户手动更改语言的选项(例如,将首选项存储在会话中)


另一种选择是采用维基百科风格,并通过URL(en.example.com、de.example.com或example.com/en/、example.com/de/)设置语言。

实现这一点的方法不止一种,但一个好的解决方案是使用地理定位套件。根据您的预算,有免费和付费的解决方案。我过去曾使用过产品(NetCuity)来解决这类问题,他们的解决方案是一流的。它们既提供内部服务器解决方案(用于高性能应用程序,每秒约30k次查询),也为更典型的应用程序提供web服务解决方案。他们有多种语言的API,包括可以在Django中使用的Python。它们将允许您根据用户IP地址查询地理位置、主要和次要语言、连接速度等信息。根据我的经验,国家一级的地理精度非常高


一个免费的解决方案,也就是MaxMind,虽然我不太熟悉他们的产品。

有不止一种方法来做这件事,但是一个好的解决办法是使用地理版面套件。根据您的预算,有免费和付费的解决方案。我过去曾使用过产品(NetCuity)来解决这类问题,他们的解决方案是一流的。它们既提供内部服务器解决方案(用于高性能应用程序,每秒约30k次查询),也为更典型的应用程序提供web服务解决方案。他们有多种语言的API,包括可以在Django中使用的Python。它们将允许您根据用户IP地址查询地理位置、主要和次要语言、连接速度等信息。根据我的经验,国家一级的地理精度非常高


一个免费的解决方案,也就是MaxMind,虽然我对他们的产品不太熟悉。

我的网站上也有类似的问题,我使用了无IP数据库作为模型,称为中间件。p>


因此,当用户访问站点时,中间件通过他的IP检测他的国家,并将他重定向到正确的语言

我在我的站点上遇到了类似的问题,我使用无IP数据库作为模型,它被称为中间件


因此,当用户访问该站点时,中间件通过他的IP检测他的国家,并将他重定向到正确的语言

Duplicate of?Duplicate of?我并没有说我将完全依赖地理位置——我打算将其与
Accept language
结合使用。(当然,我会让用户改变。)我不明白维基百科的方法是如何有用的,我在这里谈论的是如何猜测用户喜欢哪种语言。我没有说我会完全依赖地理位置——我打算将它与
接受语言
结合使用。(当然,我会让用户改变。)我不明白Wikipedia方法是如何有用的,我在这里谈论的是如何猜测用户更喜欢哪种语言。nginx 0.7+附带了一个geoip模块,该模块将用户的位置数据发送回一组标题中。nginx 0.7+附带了一个geoip模块,它将用户的位置数据发送回一组报头中。效果很好。