我想根据用户 UserProfile 中设置的国家代码/语言环境在 Django 中进行本地化,而不是使用浏览器/会话/网络服务器认为的语言环境。
有没有办法在 django 模板中做到这一点?
例如如何改变行为
{% load l10n %}
{{ value|time|localize }}
以便它根据配置文件中存储的内容而不是基于某些请求上下文来格式化日期?
我想根据用户 UserProfile 中设置的国家代码/语言环境在 Django 中进行本地化,而不是使用浏览器/会话/网络服务器认为的语言环境。
有没有办法在 django 模板中做到这一点?
例如如何改变行为
{% load l10n %}
{{ value|time|localize }}
以便它根据配置文件中存储的内容而不是基于某些请求上下文来格式化日期?
Django 提供了LocaleMiddleware来完成你所追求的大部分工作:
根据请求中的数据启用语言选择。它为每个用户定制内容。请参阅国际化文档。
它用来猜测语言的方法与翻译机器使用的方法相同;也就是说,它django_language
在会话中查找变量,如果存在并且是有效语言,它将为请求设置该语言。看看django 如何发现语言偏好。
一旦您在登录视图中从用户的个人资料启用LocaleMiddleware
和设置,一切都应该工作。django_language