【发布时间】:2021-05-25 21:59:26
【问题描述】:
您可能很想将所选语言环境存储在会话或 cookie 中。但是,不要这样做。语言环境应该是透明的并且是 URL 的一部分。这样您就不会破坏人们对网络本身的基本假设:如果您将 URL 发送给朋友,他们应该会看到与您相同的页面和内容。一个花哨的词是你是 RESTful 的。在 Stefan Tilkov 的文章中阅读有关 RESTful 方法的更多信息。有时,这条规则也有例外情况,下文将对此进行讨论。
但是couple of screens above,它教如何根据用户偏好设置区域设置。这相当于从 cookie 中设置它。
我在 Django 文档中没有看到这样的警告。尽管您可能可以避免它,但storing it in a cookie 似乎是一种推荐的方式。
是否可以以从 cookie 中获取的语言显示页面?吃饼干还是不吃?
如果没问题,我该怎么处理这些网址?我是否仍然需要不同语言的不同网址,即使语言被 cookie 覆盖?
UPD 为了清楚起见,我并没有暗示 Rails 或 Django 哪个更好。只是这些是我检查以找到答案的两个框架。 Django 建议将其存储在 cookie 中的事实是我的猜测。现在想来,应该不会吧。它只支持这两个选项。
另外,“不同语言的不同网址”是指:
- 语言由 url 决定。页面的每个版本都有自己的网址(en.example.com、example.com/en 或 example.com/?lang=en)。
【问题讨论】:
-
根据谁确定?
-
@TylerH 到好的设计原则。
标签: ruby-on-rails django cookies