跟踪用户选择的语言的最佳方式是什么?
a) 将语言设置存储在会话变量或 cookie 中
b) 从浏览器发送的 HTTP 标头中读取首选语言(区域设置)
c) 将语言附加到应用程序中每个链接的 URL
跟踪用户选择的语言的最佳方式是什么?
a) 将语言设置存储在会话变量或 cookie 中
b) 从浏览器发送的 HTTP 标头中读取首选语言(区域设置)
c) 将语言附加到应用程序中每个链接的 URL
B&C
首先从浏览器标题中读取首选语言,然后重定向到相应的 URL。
这样同一个 URL 就不会有不同的内容,不会混淆用户和搜索引擎。
我会向您推荐以下内容:
所有三个选项。
对于新用户,从标头中读取区域设置并将其写入 cookie。如果用户更改了他的首选语言,您只需在 cookie 中更改它并重定向到想要的站点。
如果您只使用 B & C 用户将无法更改他们的首选语言(至少它不会存储在任何地方,因此他们必须在每次访问时更改它)
d) 将区域偏好存储到用户配置文件中。
当然,这将需要拥有配置文件和密码的全部负担,但这是 Web 应用程序环境中的最佳选择。
这也意味着您应该根据 HTTP Accept-Language 标头的内容提供登录页面,然后使用用户在配置文件中选择的任何语言。区域首选项页面应默认为 Accept-Language 列表中的第一种支持的语言(如果已经确定,用户可以跳过选择。)
如果您仍然怀疑这是最佳选择,请记住,在区域偏好页面中,您可能会存储大量信息,例如:
其中许多事情根本无法检测到或几乎无法检测到,因为 Web 浏览器不会发送这些信息。并且您可以灵活地添加更多首选项以响应用户的请求(即,某些用户可能更喜欢 24 小时时间格式而不是 12 小时时间格式。)
在这种情况下,您需要跟踪的是用户会话。您可以将这些首选项放在用户会话对象中,以便任何对区域设置敏感的类都可以轻松使用它。