网站如何根据国家自动切换语言?

网站如何根据国家自动切换语言?
例如在国内打开就是正常的/zh, 在美国打开是/en

阅读 3.7k
4 个回答

1、IP 地理位置
2、浏览器语言首选项
3、用户手动选择

1和2可能存在误差。VPN 或代理服务器,使其 IP 地址与实际所在国家不一致。而浏览器语言偏好设置可能会被用户手动更改。
从体验上来说 3 不错,或者结合使用。

前端(客户端)处理的话可以通过 Navigator.language - Web API 接口参考 | MDN 来获取用户设置的语言。

navigator.language
// log => "zh-CN" 

后端(服务端)可以通过在 Nginx 中配置按照不同请求头中的 Accept-Language 值做不同的重定向。

但其实前端做处理就可以了,毕竟现在国际化基本都是前端来做了。

image.png
你看,http请求头自带一个语言表示,读取的系统的。这是一种思路

新手上路,请多包涵

目前来说,同一个网址的话在不同国家打开没办法自动切换语言的,毕竟访问者ip是随机的分配的。现在大部分网站的做法是设置默认语言,比如英文,然后访问者自己去切换语言,阿里云和亚马逊之前都是这样做的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题