Watch-IP

在建议语言与地区的同时保留用户的选择

利用可用的访问者上下文信息,为语言、地区和货币提供一个有用的起点——然后记住访问者明确设置的偏好,而不是每次访问都重新根据位置进行推断。

偏好优先级

首先检查是否存在访问者自己设置的明确保存选择——例如 cookie、账户设置或查询参数。仅在不存在明确选择时,才回退到基于 IP 推断的建议,并且切勿让一次新的 /v1/geo 调用覆盖访问者已经做出的偏好设置。

IP 国家与浏览器语言的区别

这两者回答的是不同的问题,结果也可能互相矛盾。一位从加拿大连接的法语访问者,可能从 /v1/geo 解析得到 country: "CA",而其浏览器的 Accept-Language 请求头(由 locale.suggestedLocale 使用)已经反映为 "fr"——请将 country 与响应自身的 locale.suggestedLocale 结合使用,而不是仅凭国家代码猜测语言,并将结果视为一种建议,而非跳转目标。

语言环境与货币字段

geo.locale.suggestedLocale、measurementSystem、firstDayOfWeek 和 dateFormat 提供区域格式方面的默认值;geo.currency 提供一个初始的货币猜测。所有这些都只是根据 country 与请求头得出的初始建议,而不是经过验证的偏好。

当无法解析位置时

locale、currency 和 country 均可能为 null——来自无法解析的网络的请求会返回 null,而不是一个猜测值。请回退到您站点自身的默认语言和格式设置,而不是在等待一个可能永远不会返回的值时阻塞页面渲染。

保持语言 URL 的稳定与可索引

提供一个可见的切换器,而不是在每次访问时自动跳转。永久性的基于 IP 的跳转会导致某个语言版本在一个稳定的 URL 上无法被搜索引擎访问,对于处于意外网络环境(例如 VPN 或酒店网络)中的访问者同样如此。

这不能保证什么

基于 IP 推断出的国家并不能证明语言偏好、国籍或实际所在位置——旅行者、VPN 用户或共享的企业网络,都可能被解析到访问者本人并不认为与其偏好语言相关的某个地方。请将每一条建议都视为可撤销的。

相关页面