网站的语言选择

Joh*_*Doe 5 html javascript internationalization web

这个问题可能让我显而易见,但是......我已经搜索了网络并且堆栈溢出但是没有找到令人满意的答案.

什么是为网站添加语言选择的良好开端?

我的网址将是

example.com/de/ example.com/en/

在我确定初始语言后指示当前语言,加上一个cookie集.

在example.com上登陆后,我将首先检查(最近的)cookie,然后检查ACCEPT_LANG,如果使用/ en /,/ de /给出了一个特定的URL.

该语言将始终是允许书签的URL的一部分,即如果我确定用户打算用德语查看该站点,我将重定向到example.com/de/.

现在我的问题是:这些天用户选择向服务器发出信号的首选方式是什么?我不是在谈论视觉选择(下拉列表与维基百科的语言列表),也不是地理定位与ACCEPT_LANG,而是用户发信号通知服务器.我记得:(假设用户在英文网站上,并希望切换到德国网站)

  1. 做客户端javascript魔法并改变location.href s // en /// de /
  2. 预渲染服务器上的语言alter链接(这样我就有机会禁止不存在的翻译链接)
  3. 回发到example.com?lang=de&orig=,它执行响应重定向.如果用户在填写字段时决定切换语言,我会有机会重新填写表单变量,但我不确定这一点.

其他可能性或技术上最好的是什么?

Ser*_*ier 1

我个人最喜欢的是解决方案 3,因为这意味着您有一个特定的“更改语言”请求,您可以在其中进行特定处理,例如将首选项保存在 cookie 中。

简单地使用客户端魔法来修改 URL 并不会告诉服务器用户实际上想要切换语言。可能只是用户通过 Google/Bing/Whatever 搜索登陆到这个特定于语言的页面,在这种情况下,用户没有主动选择语言,因此该选择不应存储在 cookie 中。

(我不确定我是否理解您在解决方案 #2 中的意思。您能澄清一下吗?)

顺便说一句,请,没有基于地理位置的语言选择。我很快就能认出所有这样做的网站:它们以荷兰语显示,因为我是比利时人,而且 60% 的比利时人说荷兰语。尽管我们的接受语言设置为法语,但对于 40% 讲法语的人来说运气不好:-(