0

我的网站上有超过 10 种语言。如果用户选择了一种语言(例如法语),如果他们关闭浏览器并再次访问该站点,它应该保持相同的语言(法语)。

我如何通过在 jQuery 中使用 cookie 来做到这一点?

这是我目前拥有的代码:

{% if request.LANGUAGE_CODE == 'da' %}
French
{% endif %}
{% if request.LANGUAGE_CODE == 'nn'
Norwegian
{% endif %}
<form action="/i18n/setlanguage/" method="post" id="language">{% csrf_token %}
<input name="languages" type="hidden" value="{{request.path}}" />
<select name="trans" onchange="this.form.submit();" 
class="lang_act">

<option value="da">French</option>
<option value="nn">Norwegian</option>

谢谢

4

1 回答 1

0

好吧,您需要阅读 django 文档以了解更多关于它如何管理 cookie 和会话变量的信息:Django session

Django 中的请求是一个类似字典的对象,预加载了几个变量,但也让您定义自己的。在视图中,您可以为 cookie 设置一个变量,如下所示:

request.cookies['lang'] = anylang

其中“lang”是您想要的变量的键名,它将在浏览器上设置并出现在以下响应中,“anylang”是您想要为您的站点设置的任何变量以使用语言,让我们假设英语=1,俄语=2...

此时,您在用户浏览器中设置了一个 cookie,它将在未来的响应中出现,您可以像这样读取该 cookie 的值:

lang = request.cookies['lang']

并使用该值做任何你想做的事情。

于 2013-05-21T15:02:29.440 回答