Apache2 或 Nginx 如何根据客户系统语言进行跳转?

2018-04-19 16:42:08 +08:00
 q770787217
Apache2 或 Nginx 如何根据客户系统语言进行跳转?
注意 是系统语言而不是浏览器语言
2795 次点击
所在节点    问与答
15 条回复
night98
2018-04-19 18:04:55 +08:00
浏览器语言不是从系统语言获取到的么,火狐可以自己设定语言,win10 可以关闭网站获取语言列表的功能,具体实现不是很清楚,坐等大佬解答
Aliencn
2018-04-19 18:13:40 +08:00
既然你想通过 http 服务器这一层来做跳转的话,这取决于浏览器发送给 http 服务器的 Accept-Language 值
如果用户电脑和浏览器的语言不一致,那你让用户自己把浏览器的 Accept-Language 值改一下就完了,哈哈哈
boboliu
2018-04-19 18:36:34 +08:00
你一个 webserver 怎么知道客户端的系统语言…老哥您是 pm 出身吧(大雾
ThirdFlame
2018-04-19 19:56:04 +08:00
任何中间件都无法感知到系统语言。
仅能够通过浏览器发来的 Accept-Language header 知道浏览器能够接受什么语言。
至于这个语言是不是一定和系统语言一直,可以准确的告诉你 不是。是可以任意修改的。
daigouspy
2018-04-19 19:59:09 +08:00
@boboliu 很明显现在的人对桌面系统没有任何了解啦,只会前端和 web server 了。
q770787217
2018-04-19 23:26:49 +08:00
这么多热心回复,我是技术小白 不知道难不难实现感应到系统语言;
Accept-Language 可以任意修改 我不想通过浏览器语言实现。
有什么办法 可以根据浏览器语言和系统语言一致时 才进行跳转?
ThirdFlame
2018-04-19 23:34:01 +08:00
@q770787217 HTTP 里面携带语言信息的只有 Accept-Language
你都无从得到客户端 系统语言 怎么可能进行判断呢。

楼上的那么多都是在告诉你 没有可能”感应到系统语言” 。
falcon05
2018-04-19 23:34:22 +08:00
不能
msg7086
2018-04-19 23:48:22 +08:00
可以用 Flash 或者 Java 小程序,在浏览器上运行以后得到语言数据,再发回服务器端,纪录下,再跳转。
CloudnuY
2018-04-20 01:08:38 +08:00
用什么不都得走 HTTP 协议吗,浏览器发送的信息只有这么点儿,除非不用浏览器技术
tinkerer
2018-04-20 01:11:40 +08:00
@q770787217 不能...别想了
night98
2018-04-20 02:11:09 +08:00
https://segmentfault.com/q/1010000002468965

https://blog.csdn.net/lvjin110/article/details/37663067

各个浏览器实现好像都不一样,可以尝试使用 js 获取的方式,然后带参访问尝试相关跳转方案。

至于准确率,目前还没有看到有网站能够百分百识别用户语言跳转的,当然你可以基于 ip,cookies,分析用户语言跳转也是可以的。
goodbest
2018-04-20 07:20:38 +08:00
再给个方法,通过 geoip 判断…
misaka19000
2018-04-20 08:40:21 +08:00
自己开发一个浏览器,强制用户使用自己开发的浏览器
LoliconInside
2018-04-20 09:18:37 +08:00
通过 WebRTC 或许可以尝试获取 OS Language,不过我没试过,有哪位大牛可以尝试一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/448187

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX