什么是内容语言和接受语言?

时间:2011-05-27 20:41:34

标签: http-headers request response

我已经看到Content-LanguageAccept-Language的HTTP标头,有人可以解释这些是什么以及它们之间的区别吗?我有一个多语言网站,并且想知道我是否应该由用户设置网站当前所选语言。

5 个答案:

答案 0 :(得分:79)

Content-Language是一个实体标题,用于描述供受众使用的语言,以便用户根据用户自己的首选语言进行区分。实体标头用于HTTP请求和响应。 1

Accept-Language,一个请求HTTP标头,通告客户端能够理解的语言,以及首选的区域设置变体。 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设置值,以强制为您的网站使用某种语言。这是因为某些用户可能希望以某种语言查看您的网站,而不会更改其语言接受偏好。

答案 1 :(得分:14)

Content-Language描述了特定内容所针对的语言。 Accept-Language是用户代理想要内容的语言列表。最好的方法是Content-Language描述内容,Accept-Language传达偏好。

答案 2 :(得分:12)

Content-Language是您所服务的网页的语言。 Accept-Language是您希望接受的语言列表。

答案 3 :(得分:5)

Content-Language entity-header字段描述了所包含实体的目标受众的自然语言。请注意,这可能与entity-body中使用的所有语言不同。

Accept-Language请求标头字段限制首选的自然语言集作为对请求的响应

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

答案 4 :(得分:0)

  

Content-Language entity header用于描述面向受众的语言,从而使用户可以根据自己的偏好语言进行区分。

Header type                     Entity header
Forbidden header name           no
CORS-safelisted response-header yes
CORS-safelisted request-header  yes
     

— MDN Web Reference - HTTP Headers - Content-Language

  

Accept-Language请求的HTTP标头会宣传客户端能够理解的语言以及首选的语言环境变体。 (按语言,我们指的是自然语言,例如英语,而不是编程语言。)

Header type                     Request header
Forbidden header name           no
CORS-safelisted request-header  yes
     

— MDN Web Reference - HTTP Headers - Accept-Language