我希望根据用户UserProfile中设置的国家/地区代码/区域设置在Django中进行本地化,而不是使用浏览器/会话/网络服务器认为是区域设置的任何内容。
有没有办法在django模板中执行此操作?
例如如何改变
的行为{% load l10n %}
{{ value|time|localize }}
以便根据配置文件中存储的内容格式化日期,而不是基于某些请求上下文?
答案 0 :(得分:2)
Django提供了LocaleMiddleware,可以完成您的大部分工作:
根据请求中的数据启用语言选择。它 为每个用户定制内容。看国际化 文档。
它用于猜测语言的方法与翻译机构使用的方法相同;也就是说它在会话中查找django_language
变量,如果存在并且是有效语言,它将为请求设置该语言。请参阅how django discovers language preference。
在您的登录视图中启用LocaleMiddleware
并从用户的个人资料中设置django_language
后,一切都应该有效。