如何在Django中基于UserProfile进行本地化

时间:2012-06-18 06:29:46

标签: django localization

我希望根据用户UserProfile中设置的国家/地区代码/区域设置在Django中进行本地化,而不是使用浏览器/会话/网络服务器认为是区域设置的任何内容。

有没有办法在django模板中执行此操作?

例如如何改变

的行为
{% load l10n %}
{{ value|time|localize }}

以便根据配置文件中存储的内容格式化日期,而不是基于某些请求上下文?

1 个答案:

答案 0 :(得分:2)

Django提供了LocaleMiddleware,可以完成您的大部分工作:

  

根据请求中的数据启用语言选择。它   为每个用户定制内容。看国际化   文档。

它用于猜测语言的方法与翻译机构使用的方法相同;也就是说它在会话中查找django_language变量,如果存在并且是有效语言,它将为请求设置该语言。请参阅how django discovers language preference

在您的登录视图中启用LocaleMiddleware并从用户的个人资料中设置django_language后,一切都应该有效。