如何使用 i18n 切换器将“LANGUAGE_CODE”保存到数据库,以便在 Django 中的不同浏览器中语言不会更改?

2024-05-15

有什么办法可以改变它的值LANGUAGE_CODE单击按钮(发送请求)时,settings.py 中的变量会动态变化吗?

我希望用户设置自己的“默认语言”他们的帐户.

现在,用户可以使用下拉列表选择他们的首选语言,并且网站会得到完美的翻译,并且由于 Django 会选择浏览器的语言,因此用户在从同一位置重新打开网站后无需重新选择他们的语言。浏览器。

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

所以我想做的是让每个用户都可以选择他们想要的语言作为默认语言。我想通过创建另一个(类似)下拉菜单并要求用户选择他们想要的语言作为“默认”并点击save按钮,保存时我想更改LANGUAGE_CODE的值设置为用户选择的值(即动态更改它)。但我不知道如何改变LANGUAGE_CODE动态地。

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

语言代码:

  • 如果未使用语言环境中间件,它将决定向所有用户提供哪种翻译。

我进行了很多研究,但找不到适合我的解决方案。我对国际化非常陌生。请帮忙。


当然有,这就是翻译的重点。您因考虑“默认”语言而感到困惑;根据定义,他们选择的东西不是默认的。

Django 文档解释了如何设置活动语言 https://docs.djangoproject.com/en/stable/topics/i18n/translation/#explicitly-setting-the-active-language明确地为用户。您可以按照您的描述在保存时进行设置。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 i18n 切换器将“LANGUAGE_CODE”保存到数据库,以便在 Django 中的不同浏览器中语言不会更改? 的相关文章

随机推荐