网站的语言选择

时间:2011-11-21 21:44:27

标签: javascript html internationalization web

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

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

我的网址将是

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

表示当前语言,加上我确定初始语言后设置的cookie。

登陆example.com后,我会首先检查(最近的)cookie,然后检查ACCEPT_LANG,如果使用/ en /,/ de /。

给出了一个特定的URL

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

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

  1. 执行客户端javascript操作并更改location.href s // en /// de /
  2. 预渲染服务器上的语言更改链接(这样我就有机会禁止不存在的翻译链接)
  3. 回发到example.com?lang=de&orig=,它执行响应重定向。如果用户在填写字段时决定切换语言,我会有机会重新填写表单变量,但我不确定这一点。
  4. 其他可能性或技术上最好的是什么?

2 个答案:

答案 0 :(得分:1)

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

仅使用客户端向导来修改URL并不会告诉服务器用户实际上想要切换语言。可能只是用户登陆了来自Google / Bing / Whatever搜索的特定语言页面,在这种情况下,用户没有主动选择语言,因此不应将选择存储在cookie中。

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

BTW,pleaaaaase,没有基于地理位置的语言选择。我可以认识到所有网站都是这样做的:他们用荷兰语展示,因为我是比利时人,60%的比利时人都是荷兰人。我们40%的法语使用者运气不好,尽管我们的接受语言设置为法语: - (

答案 1 :(得分:0)

或者,您可以使用localStorage键/值对,并在页面加载时检查是否设置了首选项,并相应地指示它们。就像cookie一样,它们可以随时被清除,但使用本地存储确实会在浏览器选项卡和会话中保持不变。