0

所以我使用语言检测/cookie方法来设置用户语言:

  1. 用户到达页面
  2. 检查用户是否设置了 cookie user_lang
  3. 如果设置,使用该语言
  4. 如果没有设置使用语言检测功能并设置cookie

语言切换:

  1. 用户转到 /change/language/[languageshortcode]

  2. 验证语言简码是否有效,删除/更改以前的 cookie 并使用新语言更新

  3. 加载页面

问题是我可以看到 user_lang cookie 确实已经从例如 EN 更改为 FR 但实际的语言切换只有在我手动刷新页面时才会发生。

在我的本地设置上,更改是立即的,在我的远程服务器上,我必须刷新。

认为我已经改变了我认为导致此的原因:

  • 禁用所有形式的页面缓存
  • 使用 htaccess 禁用 Varnish Cache 服务器端
  • 实际上删除 cookie 并设置一个新的,而不是仅仅更改 cookie

有什么建议么?

4

1 回答 1

1

由于没有发布代码,我将仅提供一些想法。一种解决方案是添加 JS 页面重新加载,但前提是某些条件为真。然而,更好的解决方案是确保如果用户对语言进行了更改,则不要读取 cookie 来检测该页面加载的语言(因为在脚本完成之前它不会完全设置)。如果用户进行了更改,则使用用于设置 cookie 的值并忽略 cookie,如果未进行任何更改,则只需检测 cookie。那有意义吗?

于 2012-05-17T17:46:20.693 回答