Content-Language

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

HTTP Content-Language 表示标头用来说明访问者希望采用的语言,这样的话用户就可以根据自己偏好的语言来定制不同的内容。

举个例子,Content-Language: de-DE 说明这份文件是为说德语的人提供的。这个文件可能是用英文写的,而非德语——它可能是为说德语的人开设的英语教程的一部分。要说明文档是用什么语言的,应该用 lang 属性。

如果没有指明 Content-Language,那么默认地,文件内容是提供给所有语言的访问者使用的。多个语言标签也是合法的。同样地,Content-Language 标头还适用于不同媒体类型的文件,而不单单局限于文本型文档。

标头类型 表示标头
禁止修改的标头
列入 CORS 白名单的响应标头
列入 CORS 白名单的请求标头 是*

* 值只能是 0-9A-Za-z、空格或字符 *,-.;=

语法

http
Content-Language: de-DE
Content-Language: en-US
Content-Language: de-DE, en-CA

指令

language-tag

多个语言标签需要用逗号隔开。每一个语言标签都是由一个或多个不区分大小写的子标签构成的,子标签之间用连字号(-)隔开。通常情况下,一个语言标签是由标识一个大的语言家族的主语言子标签(例如 en = English),以及后面可选的用来缩小语言范围使更确切的一系列子标签(en-CA 表示在加拿大范围使用的英语的变种)构成的。

备注: 语言标签在 BCP 47 中被正式定义,它使用的语言代码依赖于 ISO 639 标准(通常为 ISO 639-1 代码列表)。

示例

声明文档的书写语言

全局的 lang 属性使用在 HTML 元素去表达 HTML 文档整体或者部分的语言。

html
<html lang="de">
  …
</html>

不要使用这个 meta 元素去声明文档语言:

html
<meta http-equiv="content-language" content="de" />

为资源指定目标访问者

Content-Language 标头用于指定页面的目标受众,并且可以指定多种语言。

http
Content-Language: de, en

规范

Specification
HTTP Semantics
# field.content-language

浏览器兼容性

BCD tables only load in the browser

参见