很长一段时间我一直不快乐与谷歌在下面的情况下的行为,以及意外后指出, 80 +其他人有同样的感觉(和20+的人给予好评谷歌的错误报告的想法),我认为这是非常有用的进军SO对HTTP协议和网络文化的智慧。
这种行为似乎我每次去不同的国家和访问时间google.com
从我的笔记本电脑或安装新的浏览器。 在许多国家,包括越南,谷歌自动重定向到一个本地化的版本(例如google.com.vn ),一个我不能真正读取,所以我扫描它在拼命寻找英文版Google.com链接。
第一次发生时我既纳闷又花了一些时间找出什么可能是错我的请求头; 如我所料,我Accept-Language
始终是en-US
或类似en-US,ru;q=0.5
。 用不同的IP进一步试验证实,他们做的IP地理定位,即使您登录。后来我才知道有语言查询?hl=...
,但仍。
所以,我的问题是:你认为这是合理的和预期的行为,webculture明智? 难道其他网站做到这一点? 如果你要设计一个多语言网站你会与谁来自一个人做.vn
IP但en-US
语言?
我想有不同的方法,以IP地理定位:
禁忌 :我认为这是不礼貌的:我告诉你明确我想要什么,什么是好关于给我点别的?
亲 :这可能是一个人刚刚安装了默认的语言包浏览器,没有任何想法Accept-*
头,并且还希望看到一个网站的本地化版本。
禁忌 :然而,非技术人员的人可以通过安装语言包很容易地改变接受的语言。 事实上,如果你去下载Firefox,那么你就下载一个你想要的语言,与接受语言头,尊重您的意愿。
请注意,我读了HTTP 1.1规范 ,从1999年,但他们似乎忽略的多少的问题Accept-Language
应该真正考虑。
我认为这个问题属于这样一个web应用程序设计问题。 而我还在想着提交一个正式的bug报告(如果我是正确的,这种行为是远远网络标准)。
我认为有,在这里打球真是两个不同的问题。 语言和国家。 他们最肯定是不一样的东西。 HTTP规范的Accept-Language请求头域明确定义为语言说明,而不是一个国家符。
例如:EN-US是指在特定的语言(在美国主要是人们所说的英语版本),EN-GB指的是另一种语言(在英国主要讲的英文版本)。 这真的没有任何关系与您当前所在的世界,它只是定义了浏览网站时用什么语言是最能接受你。 这应该是受人尊敬的,因为即使是初学者也应该在他们的语言的浏览器将默认发送正确的请求头域。
但是,这不是传统的网站使用它。 像其他的海报,我已经注意到,网站等同于语言与国家和定制他们的网站,以该国的独特的政治限制/自由/该公司的产品有,不一定是语言 。 给出的例子是,不卖某一特定产品在特定的国家,但的确在别人的公司。
在什么样的产品来显示不同的国家,将进行地理定位IP地址会比基于使得从语言决定更好,但它仍然是不完美的情况。 如果我暂时在另一国,但要订购的东西,并把它交付回家? 如果我的IP地址不能反映什么,我身体是,它并不是完美的?
是的,事情正常工作对于大多数人大部分时间。 但是,为什么在地球上,你会使得人们很难得到他们要求的语言的网站? 这只是糟糕的用户界面设计。
虽然我明白,甚至分享你的无奈,也有一些合法的理由这样做。
许多公司都针对每个国家的具体地点。 例如,因为他们不卖所有的产品的每一个国家,或者是因为特定国家法律把一些具体的义务,在其网站上(禁止的产品线,发出法律声明,添加或whater,...) 。
因此,他们将竭诚为您量身定做您的,因为这应该是国内的版本是最有用的(也不要紧,X公司的产品销售中的Y Z国,如果我不是目前在Z国) 。
谷歌是聪明的。 我想他们做他们做什么,因为在大多数情况下,如果你是在越南,你很可能希望.vn
-我们的技术人员,所以我们知道所有有关接受语言等,但绝大多数的人不”吨。
话虽这么说,我想一件事,他们可能至少是有礼貌的接受语言头,是为了显示某种通知(有点像,在这个网站上显示的横幅)说,像“在英语中寻找谷歌?点击这里”如果头表示,他们希望英语 - 虽然这可能不是为谷歌工作(因为他们不这样做),我肯定会考虑,如果我是在多语种网站。
我敢打赌,有更多的人使用不正确使用之外还有谁住在一个国家,不说这个人的HTTP标头值的软件/读取的母语。 这可以解释谷歌的行为。
我同意你的无奈。 我已经通过网站的大量感到失望。 大多数做IP的地理位置,但显然没有关于浏览器的区域性设置理念。 不用说,用户位置是哪些语言和文化的用户更喜欢一个不可靠的信息源。 特别是在全球化的时代,其中的民族和文化是高度混合。
请注意,我读了1999年的HTTP 1.1规范,但他们似乎忽略的多少接受语言应该真正考虑的问题。
此设置正积极通过现代浏览器的支持。 没有好的理由不把它考虑进去。 如果标题不存在于该请求,执行地理定位,否则尊重用户的文化设置。
I'f来自拉脱维亚,我更喜欢英语。 Firefox的默认情况下将EN-US,IE将LV-LV(即使它是英文版本),因为Windows区域设置。 所以,接受头是不可靠的。
恕我直言,最好的办法是做既地理位置和接受语言检查,
如果区域和语言匹配=>自动重定向如果没有匹配=>为你的最好的猜测,并给用户一个选择(也许屏幕上方的右下角为语言切换的最佳场所,因为它是UI标准或多或少)+请记住,选择在cookie
我猜的人在非英语国家显著比例使用报告接受语言英语的(也许是因为他们使用盗版,英文版本,谁知道)的浏览器。
他们中的大多数,除了对英语语言编程网站声乐少数:),希望能看到他们自己的语言的网站,和普通老百姓不关心HTTP规范。 这将使Accept-Language头基本上是无用的,如何在现实世界!=程序员幻想世界的一个很好的例子。
我同意谷歌的行为不端。 我怀疑这是一个结构性的过度优化的结果。 如果你把贴近用户的服务器,而你的目标是出奇的快的结果,你最好服务的搜索结果的一个缓存在一个单一的语言,关每个本地服务器集群。
这意味着,当你的IP进来,它没有那么多IP地理定位的,其服务器集群首先回答您的请求。 而在越南群集离您最近进行了优化,服务于越南的页面。
我敢肯定,这是分辨,但是如果优化的设计使得它很难为他们解决我也不会感到惊讶。