Django如何知道用户来自哪个位置?

时间:2010-05-20 19:25:46

标签: python django localization

我正在阅读Django本地化文档:http://docs.djangoproject.com/en/dev/topics/i18n/localization/

当然,用户来自哪里确定要使用的“消息文件”。

如何确定用户的来源和使用方法?它是自动完成的吗?

2 个答案:

答案 0 :(得分:2)

如果要根据Django中请求的数据启用语言选择,可以在Locale middleware设置中添加MIDDLEWARE_CLASSES

阅读how Django discovers language preference了解详情。

From docs

  

LocaleMiddleware尝试确定   用户的语言偏好   遵循此算法:

     
      
  • 首先,它在当前查找django_language键   用户会话。

  •   
  • 如果没有,它会查找一个cookie。

  •   
  • 如果失败,它会查看Accept-Language HTTP标头。这个   标题由您的浏览器发送   告诉服务器你是哪种语言   更喜欢,按优先顺序排列。 Django的   尝试标题中的每种语言   直到找到一个可用的   翻译。

  •   
  • 如果失败,则使用全局LANGUAGE_CODE设置。

  •   

答案 1 :(得分:0)

语言选项不应基于用户的位置,而应基于浏览器设置或页面上的显式设置,因为位置不会定义人的语言。