Cookie与语言检测(浏览器与位置)相比,多语言网站中没有

时间:2010-02-28 11:49:54

标签: internationalization

我遇到以下情况的困境:

困境1

饼干:

对于从他/她的个人计算机访问网站的用户(不需要再次选择首选语言)有好处,但是如果某人在公共PC(例如图书馆)中首先选择了某种语言会发生什么,那么它就不会没有多大意义,因为有其他语言偏好的人可能会来。

困境2号

语言检测:

如果网页检测到该位置的语言。生活在那个国家的外国人会怎么样? (生活在一个国家的外国人是否更可能使用设置为他/她语言的浏览器?)。

(我已经有一个选择语言的菜单,但我认为'自动化'很好。)

哪个可能是最好的解决方案?

4 个答案:

答案 0 :(得分:2)

我的偏好:

  1. 如果用户已注册并具有语言偏好,请使用该语言
  2. 使用Accept-Language HTTP header进行语言检测 2.5(位置语言检测)
  3. 后备语言(例如:en_US或更适合您的目标公众)
  4. 我不确定按位置检测语言是一个非常好的主意,目前,大多数设备共享位置都是移动设备,这可能意味着用户正在旅行。 你说的还有外国人。在我的情况下,我是法国人,住在法国,但浏览器偏好en_US。

答案 1 :(得分:0)

当新用户第一次访问网站时,

Language negotiation是一个不错的选择。

但是我也会通过将语言标识符放入像/en/…这样的URL来使语言选择尽可能简单和透明。使用这样的URL,所选语言对用户是透明的,并且可以根据需要进行更改。与此语言特定的URL一起,我还将提供不带语言标识符的语言无关的URL。

答案 2 :(得分:0)

两者都有什么问题?使用cookie来确定语言的首选。如果选择了错误的选项,可以使用一个微妙的选项(可能带有标记等图形)来更改位置/浏览器语言的选项。

答案 3 :(得分:0)

如果我们有以下成分:

  • 饼干
  • ip location
  • 语言检测
  • 语言选择屏幕
  • 网站的可用语言

然后我(生活在一个英语非常多的第四语言的三语国家)希望我的语言服务方式如下:

  • 如果带有lang的cookie:show cookieLang
  • 如果没有cookie:

    • IPloc =结果IP位置
    • detLang =语言谈判的结果
    • if(匹配(例如,IPloc = BE& detLang = FR)& language available),然后设置cookie& show detectedLang
    • else(例如,不匹配IPloc = IT& detLang = NL)然后显示语言选择屏幕,让用户做出选择,在cookie&中设置lang。显示选择的语言

这里的很多网站(比利时)只显示语言选择屏幕,这被认为是容易出错的&简单的解决方案。

替代方案可以是注册2个(或更多)URL,例如mybank.be,mijnbank.be& monbanque.be,都指向同一个网站。根据用户选择的网址,自动选择正确的语言。