首页 > 解决方案 > 除了 HTTP 标头中的接受语言之外,还有其他方法可以确定客户端语言环境吗?

问题描述

对于那些不知道 LINE 是像微信、WhatsApp 这样的消息传递工具的人所以当有人在他们的聊天消息中输入 URL 时,LINE App 会显示 URL 的预览(og:title, og:description),如图所示以下

在此处输入图像描述

在此处输入图像描述

我的理解是,可以使用accept-languagein 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 标头中使用的任何其他内容。或者在内容协商过程中,还有其他方面我可以实现谷歌所做的吗?

标签: httplinelocaleuser-agent

解决方案


AFAIU,谷歌根据发件人的 IP 地址选择语言。


推荐阅读