网站如何根据国家自动切换语言?
例如在国内打开就是正常的/zh, 在美国打开是/en
前端(客户端)处理的话可以通过 Navigator.language - Web API 接口参考 | MDN 来获取用户设置的语言。
navigator.language
// log => "zh-CN"
后端(服务端)可以通过在 Nginx
中配置按照不同请求头中的 Accept-Language
值做不同的重定向。
但其实前端做处理就可以了,毕竟现在国际化基本都是前端来做了。
目前来说,同一个网址的话在不同国家打开没办法自动切换语言的,毕竟访问者ip是随机的分配的。现在大部分网站的做法是设置默认语言,比如英文,然后访问者自己去切换语言,阿里云和亚马逊之前都是这样做的
10 回答11.1k 阅读
15 回答8.4k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
1、IP 地理位置
2、浏览器语言首选项
3、用户手动选择
1和2可能存在误差。VPN 或代理服务器,使其 IP 地址与实际所在国家不一致。而浏览器语言偏好设置可能会被用户手动更改。
从体验上来说 3 不错,或者结合使用。