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

Are there any other way to determine client locale other than accept-language in HTTP header?

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

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

所以我的预期行为是,如果 LINE 应用程序设置为 en-US 语言,我可以在 accept-language 中看到 en-US。如果 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还是可以判断语言的变化,如上面两张图片所示,一个设置为英语,另一个设置为中文(但我不确定是否在Google 结束他们收到与上面相同的 HTTP header)

所以问题如题,请问还有其他方法可以判断吗?因为我看不到任何其他我可以在 HTTP header 中使用的东西。或者在内容协商期间,还有其他方面我可以实现 Google 所做的?

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

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