http - 除了 HTTP 标头中的接受语言之外,还有其他方法可以确定客户端语言环境吗?
问题描述
对于那些不知道 LINE 是像微信、WhatsApp 这样的消息传递工具的人所以当有人在他们的聊天消息中输入 URL 时,LINE App 会显示 URL 的预览(og:title, og:description),如图所示以下
我的理解是,可以使用accept-language
in HTTP 标头来确定内容的语言环境。
所以我的预期行为是,如果 LINE 应用程序设置为 en-US 语言,我可以在accept-language
. 如果 LINE 应用设置为 zh-TW,我可以在accept-language
(类似于浏览器行为)中看到 zh-TW
但是无论我在LINE App上切换到什么语言,它总是给en-US
{ accept: '*/*',
'accept-language': 'en-US,en;q=0.8,*;q=0.6',
'user-agent': 'facebookexternalhit/1.1;line-poker/1.0',
'accept-charset': 'utf-8',
'x-forwarded-for': '10.115.21.78, 147.92.137.134',
range: 'bytes=0-1048576',
host: '8f66dff1.ngrok.io',
'accept-encoding': 'gzip,deflate',
'x-forwarded-proto': 'https' }
问题是https://google.com仍然可以确定语言更改,如上面的两张图片所示,其中一张设置为英语,另一张设置为中文(但我不确定在谷歌端他们是否收到相同的HTTP标头如上)
所以问题如题,还有其他方法可以确定吗?因为我看不到可以在 HTTP 标头中使用的任何其他内容。或者在内容协商过程中,还有其他方面我可以实现谷歌所做的吗?
解决方案
AFAIU,谷歌根据发件人的 IP 地址选择语言。
推荐阅读
- arrays - 从散列数组中过滤值并将它们从原始数组中删除
- python - python kivy 屏幕配置
- java - Android CameraX - 手动更改曝光补偿?
- python - 如何将列的值转换为行 -dataframgroupby
- javascript - 如何在 React 中渲染之前触发 useEffects?
- angular - .subscribe 方法在 ionic 中返回 undefined
- apache-kafka - apache-kafka 中的多租户支持
- xcode11 - iOS 上的 IDFA 和 IDFV 仍在使用 XCode 11 构建
- wpf - WPF ValidationRule Binding 以显示错误消息
- php - PHP 从 cURL 获取 JSON 数据