2

跟踪用户选择的语言的最佳方式是什么?

a) 将语言设置存储在会话变量或 cookie 中

b) 从浏览器发送的 HTTP 标头中读取首选语言(区域设置)

c) 将语言附加到应用程序中每个链接的 URL

4

3 回答 3

0

B&C

首先从浏览器标题中读取首选语言,然后重定向到相应的 URL。

这样同一个 URL 就不会有不同的内容,不会混淆用户和搜索引擎。

于 2013-01-27T15:09:13.193 回答
0

我会向您推荐以下内容:

所有三个选项。

对于新用户,从标头中读取区域设置并将其写入 cookie。如果用户更改了他的首选语言,您只需在 cookie 中更改它并重定向到想要的站点。

如果您只使用 B & C 用户将无法更改他们的首选语言(至少它不会存储在任何地方,因此他们必须在每次访问时更改它)

于 2013-01-27T15:32:53.077 回答
0

d) 将区域偏好存储到用户配置文件中。

当然,这将需要拥有配置文件和密码的全部负担,但这是 Web 应用程序环境中的最佳选择。

这也意味着您应该根据 HTTP Accept-Language 标头的内容提供登录页面,然后使用用户在配置文件中选择的任何语言。区域首选项页面应默认为 Accept-Language 列表中的第一种支持的语言(如果已经确定,用户可以跳过选择。)

如果您仍然怀疑这是最佳选择,请记住,在区域偏好页面中,您可能会存储大量信息,例如:

  • 首选语言(这是您要求的)
  • 用户居住的国家
  • 首选区域格式(日期、时间和数字等)
  • 时区
  • 首选书写系统(又名脚本,即西里尔文与拉丁文)
  • 测量系统(公制与英制)
  • 电子邮件消息的首选编码和格式(文本与 HTML)

其中许多事情根本无法检测到或几乎无法检测到,因为 Web 浏览器不会发送这些信息。并且您可以灵活地添加更多首选项以响应用户的请求(即,某些用户可能更喜欢 24 小时时间格式而不是 12 小时时间格式。)

在这种情况下,您需要跟踪的是用户会话。您可以将这些首选项放在用户会话对象中,以便任何对区域设置敏感的类都可以轻松使用它。

于 2013-01-27T19:02:57.517 回答