我看到了 Content-Language
和 Accept-Language
的 HTTP header ,谁能解释一下它们的用途以及它们之间的区别?我有一个多语言网站,想知道我是否应该将两者都设置为用户当前选择的网站语言。
最佳答案
Content-Language
,实体 header ,用于描述面向受众的语言,以便用户根据自己的首选语言进行区分。实体 header 用于 HTTP 请求和响应。 1
Accept-Language
,一个请求 HTTP header ,通告客户端能够理解哪些语言,以及首选哪种语言环境变体。 2 可以有多种语言,每种语言都有一个可选的权重或“质量”值。例如:
Accept-Language: da, en-GB;q=0.8, en;q=0.7
(默认权重为 1,因此这相当于 da;q=1, en-GB;q=0.8, en;q=0.7
)。
您将必须解析值和权重以查看是否有合适的翻译可用,并以最高首选语言权重向用户提供翻译。
建议您为用户提供一个替代方案,例如 cookie 设置值,以强制您的网站使用某种语言。这是因为某些用户可能希望以某种语言查看您的网站,而无需更改他们的语言接受偏好。
关于http-headers - 什么是内容语言和接受语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51704587/