根据用户动态设置或更改默认语言 - Django

Yos*_*ora 3 django internationalization

有没有办法LANGUAGE_CODE在单击按钮(发送请求)时动态更改settings.py 中变量的值?

我希望用户为自己的帐户设置自己的"默认语言" .

现在,用户可以使用下拉列表选择他们的首选语言,并且网站被完美翻译,并且由于Django选择了浏览器的语言,用户在重新打开网站后不需要重新选择他们的语言浏览器.

但是当他们从不同的浏览器打开网站时,默认语言又是"英语",因为在settings.py中设置了LANGUAGE_CODE变量en-us.

所以我想要做的是让每个用户都可以选择他们想要的语言作为默认语言.我想通过制作另一个(类似的)下拉菜单并要求用户选择他们想要的语言作为"默认"并按下save按钮来执行此操作,并且在保存时,我想将LANGUAGE_CODE值更改为由用户(即动态更改).但我不知道如何LANGUAGE_CODE动态改变价值.

此外,这种方法还有一个问题.根据Django的文档,即使我能够LANGUAGE_CODE动态更改此变量,也会使网站将所选语言作为所有用户的默认语言,而不仅仅是针对那个更改它的特定用户:

LANGUAGE_CODE:

  • 如果未使用区域设置中间件,则会决定向所有用户提供哪种翻译.

我研究了很多,但找不到适合我的解决方案.我对国际化很新.请帮忙.

Dan*_*man 5

当然有,这就是翻译的重点.你通过思考"默认"语言而迷惑自己; 根据定义,他们选择的东西不是默认的.

Django文档解释了如何明确地为用户设置活动语言.您可以根据描述完全保存设置.

您可能还想在登录时重新设置此值,再次通过传递用户配置文件中的值.