【问题标题】:Language selection of web site网站语言选择
【发布时间】:2012-01-03 08:58:03
【问题描述】:

这个问题可能我很搞笑,但是……我已经搜索了网络和堆栈溢出,但没有找到令人满意的答案。

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

我的网址是

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

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

登陆 example.com 后,我将首先检查(最近的)cookie,然后检查 ACCEPT_LANG,然后检查是否使用 /en/、/de/ 给出了特定的 url。

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

现在我的问题是:如今,向服务器发出用户选择的信号的首选方式是什么?我不是在谈论视觉选择(下拉与语言列表 à la wikipedia),也不是地理定位与 ACCEPT_LANG,而是用户向服务器发出信号。我想:(假设用户在英文网站上并想切换到德文网站)

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

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

【问题讨论】:

  • 4.使用智能默认(浏览器语言?)并将用户的任何更改存储在 cookie 中。
  • "在登陆 example.com 时..." : 检查 URL 中的语言是否应该放在第一位,而不是最后。
  • 关于解决方案 3,服务器可能会使用引用者而不是 'orig' 参数。更简洁,更容易编码。

标签: javascript html internationalization web


【解决方案1】:

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

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

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

顺便说一句,pleaaaaase,没有基于地理位置的语言选择。我可以立即识别出所有这样做的网站:它们以荷兰语显示,因为我是比利时人,并且 60% 的比利时人口是荷兰语。尽管我们的接受语言设置为法语,但对于我们 40% 的法语使用者来说,不幸的是:-(

【讨论】:

【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2020-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多