除了HTTP标头中的accept-language之外,还有其他确定客户端语言环境的方法吗?

时间:2019-01-30 05:26:34

标签: http line locale user-agent

对于那些不了解LINE的消息传递工具,例如微信,WhatsApp 因此,当有人在聊天消息中输入URL时,LINE App将显示该URL的预览(og:title,og:description),如下图所示。

enter image description here

enter image description here

我的理解是,可以使用HTTP标头中的accept-language来确定内容的语言环境。

所以我的预期行为是,如果将LINE应用设置为英语,我可以在accept-language中看到英语。如果LINE应用设置为zh-TW,我可以在accept-language中看到zh-TW(类似于浏览器行为)

但是,无论我在LINE App上切换了哪种语言,它始终会提供英语

{ 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仍然能够确定语言的变化,如上面的两张图片所示,其中一张设置为英语,另一张设置为中文(但是我不确定在Google端他们是否收到了与上述相同的HTTP标头)

所以问题如标题所示,还有其他方法可以确定这一点吗?由于我看不到其他任何内容,因此可以在HTTP标头中使用。还是在内容协商期间,我还有其他地方可以实现Google的成就?

2 个答案:

答案 0 :(得分:0)

AFAIU,Google根据发送者的IP地址选择语言。

答案 1 :(得分:0)

有人告诉我这是LINE的默认行为,如果没有OpenGraph元标记,LINE将插入自己的文本,因此可以在各种语言之间切换。